破解有道翻译接口加密参数

刚开始学习爬虫的时候,跟着教程学过一次抓取有道翻译的接口,但是当时听的云里雾里,迷迷糊糊,但始终没有再拾起来,这次爬虫书里提到了这个例子,我再次仔细分析了一遍,也掌握了不少新知识。下面进入正题:

首先进入有道翻译的页面,当输入单词时,会自动在右侧翻译,这应该就是异步加载xhr。

我们打开F12,再次输入单词,xhr文件就出来了,接口url:

这是一个post请求,下面有Form Data:

再输入一个单词,找到第二个xhr进行对比,粗略可以看出,salt 、ts 都是时间戳,sign 、bv是我们需要解决的加密参数。

Ctrl+Shift+F 打开搜索

搜索关键参数: sign ,我们选择其中一个打断点,为什么选择下图这个?因为我看其中很多参数在FormData里都有。

打断点:对应变量名的行数点一下,在上面左侧框里再输一次: python 会自动显示如上图所示的内容。

我们看到显示出来的sign,并不是在这里生成的,所以我们还要再找一下 sign ,尤其关注: r = function ,再次打断点,需要取消前面的断点!!!右侧的:Breakpoints

可以看出sign:固定str+word+时间戳+固定str 组成

而bv 每次输入并不改变,我们可以不用改,而我用上面的方法搜索,没有找到生成方式,停下想了一下,这会不会是自带的属性,我搜了一下,是JavaScript的,navigator.appVersion:返回浏览器版本信息,所以这里相当于加密了User-Agent。

结果如下:

详细代码:

程序员未雨

Do one thing at a time, and do well.

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。

相关推荐

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

破解有道翻译接口加密参数