Python爬虫之Js逆向案例(11)-百度翻译
声明:百度翻译加密逆向分析仅用于研究和学习,如有侵权,可联系删除
大家好,有小伙伴私信我说百度翻译能不能写一个教程?好吧,百忙中赶紧来把文章整理出来,于是今天的逆向案例那就是百度翻译!回顾一下,我们上几期分享了知乎、webpack、爬虫数据批量保存数据库、、、,刚进来的小伙伴有需要的可到我的主页查看哦!
为了照顾刚入门童鞋,文章每一步的分析过程尽可能的详细(有经验的同学可以选择感兴趣的地方快速浏览)
下面会进行以下几步进行分析(下方演示过程全部使用chrome
浏览器);
- 定位加密字段;
- 扣代码;
- 结果演示;
一.定位加密字段
老规矩,首先我们要定位一下关键字段,于是反手就是f12,查看一下接口,看看哪个接口是关键接口,这个过程相信看完我前几期的文章之后就很容易找到了吧!如下图:
不过技巧点还是要再讲一下:定位到关键接口之后,对比变化字段时,最好把当前接口过滤出来,然后每次点击接口,可以很容易对比出字段,比如上图中的过滤输入框v2;
通过对比,我们锁定了关键字段sign、token;
sign:搜索关键词变化之后这个就变了,说明这个值的生成很可能跟关键词有关系;
token:每次都是一样的,我们去全局搜索一下果然找到了,如下图:
那我们就能确定只要能把sigin的值逆向出来,那就结束了;
二.扣代码
全局搜索字段sign,格式化结果,如下图:
搜索技巧:搜索的时候最好使用sign:的格式,因为这是个请求入参,肯定有个地方写的是sign:xxx,所以我们加上一个冒号的话会提高准确率,你懂的!
找到所有的可疑点之后我们都打上断点,重新输入关键词触发搜索接口,就会进入上图一样的断点位置;
我们把鼠标悬浮在b函数上,点击悬浮框的链接,进入到具体的实现函数中,如下图:
上面点击完之后会进入到下图这个地方,20868行是把一个匿名函数赋值到t.exports上;
经过调试,我们发现上面这个匿名函数不是很大,于是整个拷贝出来到一个js文件中,给匿名函数写个名字b,如下图:
调试的时候你会发现代码还会运行到20868行上面函数e、函数n,于是全部扣下来,如下图:
扣下来之后的代码如图:
我们调用函数b运行一下试试效果,如下图:
报错了啊!,很明显,缺了window,于是补上,再次运行:
不报错了,发现跟浏览器上运行不一致,调试发现,有个字段gtk缺了,补上,如图下图
对比之后,跟浏览器端一致,结束!
爬虫结果展示
后期会持续分享爬虫案例-100例,不想自己造轮子的同学可加入我的知识星球,有更多技巧、案例注意事项、案例坑点终结、源码、答疑提问特权等你哦!!!
欢迎加入「python、爬虫、逆向Club」知识星球