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; OUTFOX_SEARCH_USER_ID=518495945@10.168.8.61; 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()