用python做有道翻译的接口

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

def getSign(kw,salt):
    md5 = hashlib.md5()

    content = 'fanyideskweb' + kw + str(salt) + 'ebSeFb%=XZ%T[KZ)c(sy!'
    md5.update(bytes(content,encoding='utf-8'))
    sign = md5.hexdigest()
    return sign

def fanyi():
    base_url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'

    headers = {
        "Host":"fanyi.youdao.com",
        "Connection":"keep-alive",
        # "Content-Length":"201",
        "Accept":"application/json, text/javascript, */*; q=0.01",
        "Origin":"http://fanyi.youdao.com",
        "X-Requested-With":"XMLHttpRequest",
        "User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0',
        "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",
        "Referer":"http://fanyi.youdao.com/",
        # "Accept-Encoding":"gzip, deflate",
        "Accept-Language":"zh-CN,zh;q=0.9",
        "Cookie":"fanyi-ad-id=46607; fanyi-ad-closed=1; [email protected]; OUTFOX_SEARCH_USER_ID_NCOO=864597530.4941442; JSESSIONID=aaa8f-DvDX97p-CzgE7qw; ___rl__test__cookies=1530014068222",
    }

    kw = input('请输入翻译内容:')
    salt = int(time.time() * 1000) + int(random.random() * 10)
    sign = getSign(kw,salt)

    form = {
        "i":kw,
        "from":"AUTO",
        "to":"AUTO",
        "smartresult":"dict",
        "client":"fanyideskweb",
        "salt":salt,
        "sign":sign,
        "doctype":"json",
        "version":"2.1",
        "keyfrom":"fanyi.web",
        "action":"FY_BY_REALTIME",
        "typoResult":"false",
    }

    form = parse.urlencode(form)
    headers["Content-Length"] = len(form)

    req = request.Request(base_url,headers=headers,data=bytes(form,encoding='utf-8'))
    # time.sleep(2)
    response = request.urlopen(req)
    data = response.read().decode('utf-8')
    data = json.loads(data)
    for i in data['translateResult'][0]:
        content = i['tgt']
        print(content)

if __name__ == '__main__':
    while True:
        fanyi()

猜你喜欢

转载自blog.csdn.net/yehuaner33/article/details/80820903
今日推荐