<aside> 😀 今天给大家带来的是【js逆向爬虫】-有道翻译js逆向实战
</aside>
今天给大家带来的是【js逆向爬虫】-有道翻译js逆向实战

打开网页,随意输入几个单词,发现网页不是静态加载的。不着急,我们换方式,抓包。

通过查找,我们在Payload里面发现了输入的需要翻译的信息,比如我这里的“人民”,然后在Preview里面发现了返回的翻译信息,这里我没有上传图片,接着继续看Headers里面的数据,通过观察,会发现网页是post请求,大概的思路就已经出来了,先尝试写一下。
如果请求携带的参数都已经添加了(如headers,cookies,data等),但仍然报错,建议重新抓取请求。我在这一点上也遇到了相似的问题,后来我换用了“生活”一词作为参数。尝试变换表达方式,寻找意思相近的词语,可能会解决问题。
例如:
import requests
translation_url = "<https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule>"
request_headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",
"Cookie": "[email protected]; JSESSIONID=aaaL9cZGnEYP5anryhK2x; OUTFOX_SEARCH_USER_ID_NCOO=624916323.622491; DICT_UGC=be3af0da19b5c5e6aa4e17bd8d90b28a|; JSESSIONID=abcbn5lLEK4FC4F7BhK2x; ___rl__test__cookies=1639138497978",
"Referer": "<https://fanyi.youdao.com>",
"Content-Length": "252"
}
translation_data = {
"i": "生活",
"smartresult": "dict",
"client": "fanyideskweb",
"salt": "16391384979865",
"sign": "b1e30cb6bb14501ea6827a83a554dcae",
"lts": "1639138497986",
"bv": "e70edeacd2efbca394a58b9e43a6ed2a",
"doctype": "json",
"version": "2.1",
"keyfrom": "fanyi.web",
"action": "FY_BY_REALTlME"
}
response = requests.post(translation_url, headers=request_headers, data=translation_data)
print(response.status_code)
print(response.text)
第一步基本上就成功了,看一下返回后的结果:

[](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)
可是当我们想更换一个单词的时候,系统又会报错,比如,我这里换了太阳:
