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

    import urllib.request
    import urllib.parse
    import json
    import hashlib
    from datetime import datetime
    import re
    
    while True:
        d = input('translation:
    ')
        if d == 'quit':
            break
        heads = {}
        heads['User-Agent'] = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
    
        now = datetime.now()
        now = now.timestamp()
    
        a = re.match(r'(d+).(d+)', str(now))
        b = a.group(1)+a.group(2)
        f = b[:13]   #时间戳前13位
    
        c = "rY0D^0'nM0}g5Mm1z%1G4"
        u = 'fanyideskweb'
    
        creatmd5 = u + d + f + c
    
        #生成md5
        md5 = hashlib.md5()
        md5.update(creatmd5.encode('utf-8'))
        sign = md5.hexdigest()
    
        url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom='
    
        data = {}
        data['i'] = d
        data['from'] = 'AUTO'
        data['to'] = 'AUTO'
        data['smartresult'] = 'dict'
        data['client'] = 'fanyideskweb'
        data['salt'] = f
        data['sign'] = sign
        data['doctype'] = 'json'
        data['version'] = '2.1'
        data['keyfrom'] = 'fanyi.web'
        data['action'] = 'FY_BY_CLICKBUTTION'
        data['typoResult'] = 'true'
    
        data = urllib.parse.urlencode(data).encode('utf-8')
    
        req = urllib.request.Request(url=url, data=data, method='POST',headers=heads)
        #想要使用动态追加头headers,必须使Request类实例化,对象有动态追加函数req.add_headers()的方法
        response = urllib.request.urlopen(req)
    
        translateResult = response.read().decode('utf-8')
    
        target = json.loads(translateResult)
    
        print(target['translateResult'][0][0]['tgt'])
  • 相关阅读:
    二分查找binarySearch
    快速排序quicksort实现方法
    读书清单
    windows 下遍历文件夹
    如何输出 android.mk 及 Application.mk 中个变量的值
    【转】 armeabi与armeabi-v7a
    Application.mk
    【转】TypeError: 'module' object is not callable 原因分析
    User breakpoint called from code at XXX的解决方式记录
    关于溢出的一些体会
  • 原文地址:https://www.cnblogs.com/mzc1997/p/7727878.html
Copyright © 2011-2022 走看看