最近为了熟悉一下 js 用有道翻译练了一下手,写一篇博客记录一下,也希望能对大家有所启迪,不过这些网站更新太快,可能大家尝试的时候会有所不同。
首先来看一下网页 post 过去的数据
大家不难发现,我们翻译的内容是放在 post 的 data 中的,这些参数,除了 salt 和 sign 要么就是不会变化,要么就是一眼能看出来意义的;那么这个 salt 和 sign 是什么呢?salt 根据 ta 数据的特征,我们应该会想到,这应该是一个时间戳,而 sign 又是什么呢?我们一起来看一下
找到这个 js 文件,最上面这个 send 文件
将里面的 js 代码拷贝出来,格式化一下,搜索 sign
我们发现,salt 确实是一个时间戳,但 sign 呢?,这里对 sign 的计算稍微多啰嗦几句,如图:
大家发现 sign 的值,也就是 o 一共是对四个参数进行求 md5 码,两个是定值,一个是前面求到的时间戳,还有一个是什么呢?这个地方我也找了挺久的(还是不懂 js 的痛啊,哭。。。)剩下的参数,就是图片中所谓的 t
var t = e.i
然后在 data 中,大家还能发现这么一句:
i:e.i
这个 i 我们对应到 ta 发送的 data 中,不就是我们要翻译的字符串吗?哈哈哈,被我发现了吧!
发现这个就好办了,我们找出其中参数之间的关系,用Python实现 ta
但当我们构造好 data 兴高采烈地将数据 post 过去的时候,会发现出现报错了
为什么呢?难道是我们的 data 构造的有问题吗?不清楚,先尝试一下,咱们吧浏览器中的 data 拷贝进来运行一下,发现还是出错了;那么说明错误不是出在 data 上面了,那究竟是那里出了问题呢?难道 ta 还有其他的校验方式;别着急继续分析,我们再观察一下,post 请求,发现这个请求是带了 cookie的,于是我们猜测,是不是 cookie 的原因呢? 还是不清楚,我们尝试一下,将 data 对应的 cookie 加上,再运行一下。发现这次通过了,我们的猜测没错,确实是 cookie 的原因,那么这个 cookie 又是怎么来的呢?
Cookie
多尝试几次,大家会发现,不同的请求内容,前面两个是不会发生改变的,而第三个,结合我们之前的经验,是不是很像一个时间戳;既然有猜测,咱们就又来尝试一下,自己构造一个 Cookie post 过去,万事大吉,哈哈哈哈。
最后附上我的代码
#/usr/bin/python # encoding:utf-8 # __Author__ = Slwhy import requests import time import random import hashlib #i = "" + ((new Date).getTime() + parseInt(10 * Math.random(), 10)) i = str(int(time.time()*1000)+random.randint(1,10)) #o = n.md5("fanyideskweb" + t + i + "aNPG!!u6sesA>hBAW1@(-"); t = raw_input("please input the word you want to translate:") u = 'fanyideskweb' l = 'aNPG!!u6sesA>hBAW1@(-' src = u + t + i + l # u 与 l 是固定字符串,t是你要翻译的字符串,i是之前的时间戳 m2 = hashlib.md5() m2.update(src) str_sent = m2.hexdigest() ''' i:number from:AUTO to:AUTO smartresult:dict client:fanyideskweb salt:1515462554510 sign:32ea4a33c063d174a069959a5df1a115 doctype:json version:2.1 keyfrom:fanyi.web action:FY_BY_REALTIME typoResult:false ''' head = { 'Accept':'application/json, text/javascript, */*; q=0.01', 'Accept-Encoding':'gzip, deflate', 'Accept-Language':'zh-CN,zh;q=0.9', 'Content-Length':'200', 'Connection':'keep-alive', 'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8', 'Host':'fanyi.youdao.com', 'Origin':'http://fanyi.youdao.com', 'Referer':'http://fanyi.youdao.com/', 'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36', 'X-Requested-With':'XMLHttpRequest', # 'Cookie': 'YOUDAO_MOBILE_ACCESS_TYPE=1; OUTFOX_SEARCH_USER_ID=833904829@10.169.0.84; OUTFOX_SEARCH_USER_ID_NCOO=1846816080.1245883; fanyi-ad-id=39535; fanyi-ad-closed=1; JSESSIONID=aaaYuYbMKHEJQ7Hanizdw; ___rl__test__cookies=1515471316884' } head['Cookie'] = 'OUTFOX_SEARCH_USER_ID=833904829@10.169.0.84; OUTFOX_SEARCH_USER_ID_NCOO=1846816080.1245883; ___rl__test__cookies='+str(time.time()*1000) # '___rl__test__cookies=1515471316884' data = { 'i': t, 'from':'AUTO', 'to':'AUTO', 'smartresult':'dict', 'client':'fanyideskweb', 'salt':i, 'sign':str_sent, 'doctype':'json', 'version':'2.1', 'keyfrom':'fanyi.web', 'action':'FY_BY_REALTIME', 'typoResult':'false' } s = requests.session() # print data url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' p = s.post(url,data= data,headers = head) print p.text
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- lol全球总决赛lck一号种子是谁 S14全球总决赛lck一号种子队伍
- BradMehldau-ApresFaure(2024)[24-96]FLAC
- IlCannone-FrancescaDegoPlaysPaganinisViolin(2021)[24-96]FLAC
- Tchaikovsky,Babajanian-PianoTrios-Gluzman,Moser,Sudbin[FLAC+CUE]
- 费玉清.1987-费玉清十周年旧曲情怀4CD【东尼】【WAV+CUE】
- 群星.2024-春花焰电视剧影视原声带【TME】【FLAC分轨】
- 方力申.2008-我的最爱新曲+精丫金牌大风】【WAV+CUE】
- 群星 《2024好听新歌35》十倍音质 U盘音乐 [WAV分轨][1.1G]
- 群星《烧透你的耳朵1》DXD金佰利 [低速原抓WAV+CUE][1.2G]
- 莫文蔚《超级金曲精选2CD》SONY [WAV+CUE][1.6G]
- 【RR】加尼克奥尔森GarrickOhlsso《贝多芬钢琴协奏曲全集》原声母带WAV
- 彭芳《纯色角1》[WAV+CUE]
- 李蔓《山顶的月亮—李蔓动态情歌》
- 梁咏琪.1999-新鲜【EEI】【WAV+CUE】
- 张琍敏.1979-悲之秋【海山】【FLAC分轨】