zoukankan      html  css  js  c++  java
  • Python爬虫-有道翻译

    有道翻译爬虫实现

      POST请求:

    #有道翻译爬虫
    
    from urllib import request
    import urllib
    import re
    
    #构造请求头信息
    header={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) 
    AppleWebKit/537.36 (KHTML, like Gecko) 
    Chrome/81.0.4044.122 Safari/537.36"
    }#谷歌浏览器
    
    #http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule 网页上的url
    url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
    
    key="白金之星,世界"
    
    #发送到web服务器的表单数据
    formdata={
    "i":key,
    "from":"AUTO",
    "to":"AUTO",
    "smartresult":"dict",
    "client":"fanyideskweb",
    "salt":"15880563488791",
    "sign":"cc2c40d740538fc5edc0380891faef27",
    "ts":"1588053583943",
    "bv":"f9c86b1fdf2f53c1fefaef343285247b",
    "doctype":"json",
    "version":"2.1",
    "keyfrom":"fanyi.web",
    "action":"FY_BY_REALTlME"
    
    }
    
    #经过urlencode转码
    data=urllib.parse.urlencode(formdata).encode(encoding='utf-8')
    
    #如果Request()方法中的data参数有值,那么这个请求就是POST
    #如果没有,就是GET
    req=request.Request(url,data=data,headers=header)
    
    response=request.urlopen(req).read().decode()
    
    #print(response)
    
    # "tgt":"Platinum stars, and the world"}]] 提取Platinum stars, and the world
    pat=r'"tgt":"(.*?)"}]]' #字符串中有"",再用''括起来表示字符串
    
    result=re.findall(pat,response)
    
    print("翻译结果:"+result[0])
  • 相关阅读:
    用__new__ 创建单例模式
    函数的列表作为默认参数
    循环闭包函数打印列表
    斐波那契函数和回调函数
    类的共享属性
    字典和format用法
    python 面试大全: 01_类变量在内部是作为字典处理的
    git 学习删除某次提交
    mysql调优
    re模块
  • 原文地址:https://www.cnblogs.com/Just-a-calm-programmer/p/12794872.html
Copyright © 2011-2022 走看看