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'])
  • 相关阅读:
    ORA-12543: TNS:destination host unreachable
    Visual Studio 2008 连接云端 visualstudio.com
    将博客搬至CSDN
    Shiro 系列笔记(一)
    Centos 6.7 安装jdk
    Centos service启动失败原因--权限问题
    form表单提交的ajax形式
    slf4j与mybatis结合显示sql
    Docker 部署 redis教程,附带部分小建议,防止踩坑
    Android中的EditText默认时不弹出软键盘的方法
  • 原文地址:https://www.cnblogs.com/mzc1997/p/7727878.html
Copyright © 2011-2022 走看看