Python爬虫进阶 | X牛数据加密解析

咸鱼又来练手了,此次来研究下在搜索参数搜不到的状况下怎么办?前端

有点经验的朋友确定知道此次要用的就是 XHR BreakPoint。web

关于XHR BreakPoint在不少文档中都有说起,咸鱼就不啰嗦了,还不是很了解的能够看下面的文档。chrome

developers.google.com/web/tools/c…异步

在分析请求以前,咸鱼分享一个调试小技巧。chrome-devtools

今天在交流群划水的时候有几个群友比较纠结于如何判断数据是否是由js生成或异步加载的。网站

我经常使用的方法有两种:google

  • 第一种,右键查看「网页源代码」,以后在打开的网页源码的界面搜索咱们想要得数据是否在其中就能够判断了。加密

  • 第二种,关闭网页的js加载功能,查看网页咱们须要的数据是否可以顺利加载或者查看数据是否完整,步骤也很是简单。调试

第一步: 点击地址栏前端的图示位置,选择网站设置。cdn

第二步: 在权限位置将JavaScript选择为禁止,返回刷新网页,查看数据是否顺利加载。

以上两个小技巧能够大大方便咱们的调试,就不用猜来猜去了。

分析请求

用上面的方法咱们判断,数据是经过js加载的,而且请求的参数和返回的参数都是通过加密的。

到这里就须要 XHR 断点帮助咱们定位加密了。

定位加密位置

咱们先添加一个XHR断点。

从新刷新页面。

能够看到断点的位置上已经有了咱们须要的参数加密。

加密分析

参数加密

咱们先找到参数尚未加密的地方。往上找很快就看到参数尚未加密的地方。

能够看到上图1,2两个断点的位置还只是对数据进行序列化等操做,到了第3,4断点的位置参数就被加密了。因此咱们能够从新刷新一下看看数据是怎么被加密的。

到这个位置就能够追进去分析了,接下来就比较简单了。

能够看到这里就是参数的主要加密逻辑:

还有就是关于 sig 参数,逻辑也被分析出来了。

接下来就是分析返回的参数解密的位置了。

数据解密

数据解密的位置很快也被定位到了,咱们看到 l 就是返回的密文.

我如今断点端的位置也就是解密的位置。按照参数加密的方法追进去就能够看到解密的方法了.

把解密和解密的方法扣出来就是咱们须要的js代码了。

本文完。

相关文章
相关标签/搜索