zoukankan      html  css  js  c++  java
  • Python爬取有道词典

    from urllib import request,parse
    import hashlib
    import random
    import time
    import json

    #定义md5加密函数
    def getMD5(value):
    aa = hashlib.md5()
    aa.update(bytes(value,encoding="utf-8"))
    sign = aa.hexdigest()
    return sign

    #定义请求函数
    def fanyi(content):
    base_url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
      #对salt和sign进行js解析
    i = int(time.time() * 1000) + random.randint(0, 10)
    value ="fanyideskweb" + content + str(i) + "aNPG!!u6sesA>hBAW1@(-"
    data = {
    'i': content,
    'from': 'AUTO',
    'to': 'AUTO',
    'smartresult': 'dict',
    'client': 'fanyideskweb',
    'salt': i,
    'sign': getMD5(value),
    'doctype': 'json',
    'version': '2.1',
    'keyfrom': 'fanyi.web',
    'action': 'FY_BY_REALTIME',
    'typoResult': 'false',
    }
    data = parse.urlencode(data)
    headers = {
    'Accept': 'application / json, text / javascript, * / *; q = 0.01',
    'Accept - Language': 'zh - CN, zh;q = 0.9',
    'Connection': 'keep - alive',
    'Content - Type': 'application / x - www - form - urlencoded;charset = UTF - 8',
    'X - Requested - With': 'XMLHttpRequest',
    "Host": "fanyi.youdao.com",
    "Origin": "http://fanyi.youdao.com",
    "Referer": "http://fanyi.youdao.com/",
    'Content-Length': len(data),
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',
    'Cookie': 'OUTFOX_SEARCH_USER_ID=168162067@218.241.251.155; OUTFOX_SEARCH_USER_ID_NCOO=2121343110.2274957; fanyi-ad-id=41685; fanyi-ad-closed=1; JSESSIONID=aaacmpXxOWbOKdy_3IIjw; ___rl__test__cookies=1522238432888'
    }
    res = request.Request(base_url,data=bytes(data,encoding="utf-8"),headers=headers)
    response = request.urlopen(res)
    html = response.read().decode('utf-8')
    dict_data = json.loads(html)
    dic_data = dict_data["smartResult"]
    di_data = dic_data["entries"]
    print(di_data)
    for data in di_data:
    if data != ' ':
    print(data)


    if __name__ == '__main__':
    while True:
    content = input("请输入您需要翻译的内容:")
    fanyi(content)
    if content == "q":
    break
    #好了执行一下看看吧
  • 相关阅读:
    20120410日常记录
    20120229
    20120307
    20120411记录
    javaScript OOP学习总结
    vue.js初学习
    SQL Server 2008 r2 新建实例无法远程访问 Error:40
    SSRS 中表格报表分组字段含有NULL
    Iframe中的SSRS报表中使用windows.open在新窗口中不能打开URL中的问题
    SSIS中的Unicode,非Unicode问题
  • 原文地址:https://www.cnblogs.com/w-zc/p/8666976.html
Copyright © 2011-2022 走看看