url: https://www.weibotop.cn/2.0/
分析过程
- 打开开发者工具,页面直接进入了debugger模式。
编辑
想要跳过这个debugger模式,可以在debugger这行代码的前面右键,选择never pause here
。
- 编辑
重新刷新界面,就不会进入debugger模式了。抓流量包。
- 编辑
主要关注currentitems
,它的响应数据是加密字符串,需要找到其的解密过程。
- 由于还是寻找响应数据的解密过程,经过前面两篇文章,立马去搜索
interceptors
,但是很遗憾,这里没有。
编辑
这个方法行不通,只能搜索url关键字了,只有一条记录。
- 编辑
- 定位到该函数,上下文看看,就看到了加密和解密的地方。
编辑 - 是老朋友了,AES算法,主要需要找到
key
,iv
和mode
,在解密的地方打断点,刷新界面。
编辑
单步调试。i = t = String(t)
,把加密的字符串赋值给i
。o = n.enc.Base64.parse(i)
,对i
进行base64解码,赋值给o
。r = a
,a
在上面有定义,是通过一个固定字符串计算SHA1值之后截取前32位得到,是一个固定值。
- 编辑
下面就是AES解密,o
是需要解密的字符串,r
是key,mode
是ECB
,iv
不需要。
编辑
- 编写python代码,开始爬取数据,但是这里没成功,经过不断的调试,是python的base64解码和JS中的base64解码的结果不一致导致,暂时没找到解决办法,所以只能采用python调用js代码的方式实现。
运行结果如下:
编辑
成功获取到数据。
编辑