import time import random from fengzhuang_all import post import json # 将md5加密进行函数封装 def md5_my(sign_str): # md5加密模块 import hashlib # 创建md5对象 使用hashlib.md5()方法 md5_o=hashlib.md5() # 需要有bytes, 作为参数 # 由str, 转换成 bytes encode-------str.encode('utf-8') # 由bytes转换成 str, decode---------bytes.decode('utf-8') sign_bytes=sign_str.encode('utf-8') # 查看sign_bytes为什么类型? # print(type(sign_bytes)) # 更新md5 object的值 md5_o.update(sign_bytes) # 将加密后的转换为str类型 使用 md5_o.hexdigest()方法 sign_str=md5_o.hexdigest() return sign_str # 将翻译过程封装成函数 def translate(kw): # 定义URL url='http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' # 生成form 1.i 需要确定 2.salt 需要确定 3.sign 需要确定 # 将AJAX内分析出来的form内容转换成Python代码实现 # i=key(key为自行输入的值) key=kw # salt = "" + ((new Date).getTime() + parseInt(10 * Math.random(), 10) # time.time()*1000 结果为浮点型 需要转换成 整型int salt= int(time.time()*1000+random.randint(0,10)) # salt 需要转换为str类型 salt_str=str(salt) # sign = u.md5(S + n + r + D) # S = "fanyideskweb" n=key r=salt D = "ebSeFb%=XZ%T[KZ)c(sy!" sign_str="fanyideskweb" +key+salt_str+"ebSeFb%=XZ%T[KZ)c(sy!" # 调用md5加密函数对sign_str进行加密 sign_md5_str=md5_my(sign_str) form={ "i": key, "from": "AUTO", "to": "AUTO", "smartresult": "dict", "client": "fanyideskweb", "salt": salt_str, "sign": sign_md5_str, "doctype": "json", "version": "2.1", "keyfrom": "fanyi.web", "action": "FY_BY_REALTIME", "typoResult": "false", } # 定义headers头 headers={ "Accept": "application/json, text/javascript, */*; q=0.01", # "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9", "Connection": "keep-alive", # "Content-Length": "214", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Cookie": "P_INFO=m18032878656_1@163.com|1534150707|2|mail163|00&99|heb&1530976017&yanxuan_web#bej&null#10#0#0|180656&1||18032878656@163.com; OUTFOX_SEARCH_USER_ID=756027640@10.168.8.76; OUTFOX_SEARCH_USER_ID_NCOO=1250267709.158026; JSESSIONID=aaamQbnIYcOhQahSPg4uw; ___rl__test__cookies=1534244751313", "Host": "fanyi.youdao.com", "Origin": "http://fanyi.youdao.com", "Referer": "http://fanyi.youdao.com/", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36", "X-Requested-With": "XMLHttpRequest", } # 调用之前封装好的函数 post 方法 html_bytes=post(url,form,headers=headers) # print(type(html_bytes)) # json.dumps()函数是将字典转化为字符串 # json.loads()函数是将字符串转化为字典 res_dict=json.loads(html_bytes.decode('utf-8')) # print(html_bytes.decode('utf-8')) # 从返回内容中提取翻译内容的准确信息 translateResult=res_dict['translateResult'][0][0]['tgt'] return translateResult if __name__ == '__main__': while True: ww=input('请输入你要翻译的内容:') print('翻译结果为:'+ translate(ww))
有道翻译(模拟)
最新推荐文章于 2019-09-23 00:04:25 发布