import time
import requests
import hashlib
class YoudaoFanyi:
def __get_cookie(self):
url='http://fanyi.youdao.com/'
ret=requests.get(url=url)
return ret.headers.get('Set-Cookie')
def translate(self,key,from_='AUTO',to='AUTO'):#from_='zh-CHS',to='en'
cookie=self.__get_cookie()
d = key
m = hashlib.md5()
u = 'fanyideskweb' #判断是网页还是客户端
# 由于网页是用的js的时间戳(毫秒)
# 所以需要*1000
f = str(int(time.time()*1000))
c = "rY0D^0'nM0}g5Mm1z%1G4" #根据md5的方式:
c = "1L5ja}w$puC.v_Kz3@yYn" #根据md5的方式:
# md5(u + d + f + c),拼接字符串生成sign参数。
m.update((u + d + f + c).encode('utf-8')) #生成加密串
data= { 'i':d,
'from':from_,
'to':to,
'smartresult':'dict',
'client':u,
'salt':f,
'sign':m.hexdigest(),
'doctype':'json',
'version':'2.1',
'keyfrom':'fanyi.web',
'action':'FY_BY_CLICKBUTTION',
'typoResult': False }
headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
'Origin':'http://fanyi.youdao.com',
'Referer':'http://fanyi.youdao.com/',
'Host': 'fanyi.youdao.com',
'Connection': 'keep - alive',
'Cookie':cookie,
} #print(data) #接口
# post = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null'
post = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
youdaojson = requests.post(post,headers = headers,data=data).json() #
print(youdaojson)
for i in youdaojson.get('translateResult'):
for j in i:
print('翻译结果:{a[tgt]}'.format(a=j))
time.sleep(0.5)
if __name__== "__main__":
youdao = YoudaoFanyi()
while True:
key =input("请输入你要翻译的文字('quit':退出): ").strip()
if key=='q':
break
youdao.translate(key,from_='zh-CHS',to='en')