百度翻译逆向爬虫
网站链接
https://fanyi.baidu.com/?aldtype=16047#auto/zh
接口链接
https://fanyi.baidu.com/v2transapi?from=zh&to=en
接口参数
sign,token
1.爬取步骤
- 抓包查找值
- 查找关键值,定位关键代码
-
搜索查找
- 小技巧:
- 直接搜索参数
- pwd=
- pwd =
- pwd:
- pwd :
- 密码框地方右键 检查 查看 id name type
- 小技巧:
-
xhr断点查找
-
DOM断点查找(不经常使用)
-
- 定位到关键代码之后,定位到关键函数
- 扣取代码或代码解密后用python语言复现
- 输出加密结果
2.实际操作
-
抓包查找值
-
token值:经过翻译不同的中文后,我们发现token值为固定写死的,或者我们也可以直接从HTML源码中提取token值,故而该值不需要逆向获取
-
sign值:经过翻译不同的中文后,我们发现sign值是动态变化的,所以我们需要进入js代码。
- 首先,经过调试我们可以发现,翻译请求时,网页地址不发生变化,断定改请求为ajax请求。
- 通过分析xhr请求页,发现接口链接为https://fanyi.baidu.com/v2transapi?from=zh&to=en
参数列表:
-
-
查找关键值,定位关键代码
- 搜索查找
- 查找sign:缩小范围,定位到js文件为index_5bbbfa0.js,关键参数位置
,此时我们进入L(e)函数,可以看到函数内容
- 查找sign:缩小范围,定位到js文件为index_5bbbfa0.js,关键参数位置
- 搜索查找
-
扣取关键代码
function e(r) { function n(r, o) { for (var t = 0; t < o.length - 2; t += 3) { var a = o.charAt(t + 2); a = a >= "a" ? a.charCodeAt(0) - 87 : Number(a), a = "+" === o.charAt(t + 1) ? r >>> a : r << a, r = "+" === o.charAt(t) ? r + a & 4294967295 : r ^ a } return r } var o = r.match(/[\uD800-\u