作为一个初学者,花两天时间破解了有道翻译的反爬虫系统,故为之文以记之。
参考文章:博客1博客2
以上博客均已失效但有助于爬虫学习
在写代码的时候遇到了很多困难。
首先是找文件,我一个个找下来,终于发现宝藏藏在https://shared.ydstatic.com/fanyi/newweb/v1.1.6/scripts/newweb/fanyi.min.Js
(也就8700多行代码)
然后又找了很久才确定重要的代码是
i = r + parseInt(10 * Math.random(), 10); return {//解释一下,r是时间,e是输入的字符串 ts: r, bv: t, //bv与登录的设备有关,照抄即可 salt: i, //salt是时间后随机加了一位 sign: n.md5("fanyIDeskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@") //sign由MD5哈希函数生成 }
于是用python模拟
import requestsimport Jsonimport timeimport randomimport hashlibs = input("输入:")lts = int(time.time()*1000)salt = str(lts) + str(random.randint(1,10))sign = hashlib.md5(("fanyIDeskweb" + s + salt + 'Tbh5E8=q6U3EXe+&L[4c@').encode('utf-8')).hexdigest()url = 'https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'Form_data = { 'i': s,'from': 'auto','to': 'auto', 'smartresult': 'dict', 'clIEnt': 'fanyIDeskweb', 'salt': salt, 'sign': sign, 'lts': str(lts), 'bv': 'aebb3706172bf86d13745c023f705992', 'DOCTYPE': 'Json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_CliCKBUTTION'}headers = { 'Referer': 'https://fanyi.youdao.com/', 'cookie': 'OUTFOX_SEARCH_USER_ID=205296444@10.169.0.102; JsESSIONID=aaawhHcNi3nMhhZRNbCPx; OUTFOX_SEARCH_USER_ID_NCOO=565944356.2973771; fanyi-ad-ID=112781; fanyi-ad-closed=1; ___rl__test__cookies=1625057652866', 'User-Agent': 'Mozilla/5.0 (windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}response = requests.post(url,data = Form_data,headers=headers)content = Json.loads(response.text)print(content)print(content['translateResult'][0][0]['tgt'])
有个注意点,headers的三项不可省略
总结后记:做这种事最重要的是耐心,不断搜寻——模拟——找错。
不知道我这篇博客有效期多久,估计很快又会有新的系统上线。
要相信:魔高一尺,道高一丈(doge)
以上是内存溢出为你收集整理的有道翻译反反爬虫(python)全部内容,希望文章能够帮你解决有道翻译反反爬虫(python)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)