先打开F12,然后随便打出个单词会发现网址没有变化,但页面刷新了,这是一个阿贾克斯的请求。如下图:
,上传的data如下:
,再随便打个单词,页面自动刷新,会发现上传的参数三个值有变化:
找到加密参数就好办了,下面搜索sing参数:
,很幸运只有一个,点开js文件在sing加密参数处设置断点,然后刷新页面,会发现这是一个md5加密参数,sing由n.md5组成,也就是两个字符串+e+i组成的然后转换成md5加密参数,r是一个13位的时间戳,i是r+一个随机数也就是13位的时间戳加个随机数,e是要翻译的单词,
。先导入模块
明白了sing组成方式就好写代码了。先设置e,i,r三个参数
lst是13位的时间戳,lalt是13位时间搓加个随机数,
sing1是没加密前的参数,然后用hashlib.md5进行加密,打印出来看着没啥问题就该设置url,
然后上传ua不然会报错418我是一个茶壶
hedas = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36', 'Cookie': 'OUTFOX_SEARCH_USER_ID=1036207011@10.169.0.81; OUTFOX_SEARCH_USER_ID_NCOO=759238958.129064; JSESSIONID=aaaGFBt2yOiUZ5cCazy3x; ___rl__test__cookies=1640012986394' 'Host: fanyi.youdao.com', 'Origin': 'https://fanyi.youdao.com', 'Referer': 'https://fanyi.youdao.com/'} html = requests.post(url=url,headers=hedas,data=data).json() print(html)
然后随便打个单词print一下,
成了OK完整代码如下:
i = str(input("请输入要翻译的单词")) lst = str(int(time.time()*1000)) salt = str(lst+str(random.randint(0,9))) print(lst,salt) sing1 = "fanyideskweb" + i + salt + "Y2FYu%TNSbMCxc3t2u^XT" sing = hashlib.md5(sing1.encode()).hexdigest() url = 'https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' data = { 'i': i, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': salt, 'sign': sing, 'lts': lst, 'bv': 'fdac15c78f51b91dabd0a15d9a1b10f5', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTlME' } 'OUTFOX_SEARCH_USER_ID=1036207011@10.169.0.81; OUTFOX_SEARCH_USER_ID_NCOO=759238958.129064; JSESSIONID=aaaGFBt2yOiUZ5cCazy3x; ___rl__test__cookies=1640016239015' 'OUTFOX_SEARCH_USER_ID=1036207011@10.169.0.81; OUTFOX_SEARCH_USER_ID_NCOO=759238958.129064; JSESSIONID=aaaGFBt2yOiUZ5cCazy3x; ___rl__test__cookies=1640016282352' hedas = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36', 'Cookie': f'OUTFOX_SEARCH_USER_ID=1036207011@10.169.0.81; OUTFOX_SEARCH_USER_ID_NCOO=759238958.129064; JSESSIONID=aaaGFBt2yOiUZ5cCazy3x; ___rl__test__cookies={lst}' 'Host: fanyi.youdao.com', 'Origin': 'https://fanyi.youdao.com', 'Referer': 'https://fanyi.youdao.com/'} html = requests.post(url=url,headers=hedas,data=data).json() print(html)