本文仅供学习参考,切勿违反相关法律
抓包请求
网站: aHR0cHM6Ly90b3VzdS5zaW5hLmNvbS5jbi8= 通过抓包分析得到以下参数:
初步判断 ts 是时间戳,type 和 page_size是定值, page 是页数
那接下来需要分析的有 ts 和signature
参数分析
经过观察这是一个异步请求
ok, 直接跟栈打断点
再刷新下运行到了断点位置
发现加密的参数已经有了,那只能往上跟栈,查找参数生成位置
跟栈时候可以先观察参数及返回值,如果参数就已经包含加密参数, 那么直接可以直接查看上一层,经过分析找到了以下位置:
参数 d 毫无疑问是时间戳:
参数 rs 是一段随机字符,用 js 里的自执行函数生成,没有别的依赖,直接可以执行
signature 看起来复杂一些, 是一个有很多参数的为止函数生成, 参数先被放在一个数组里, 然后排序并 join 变成一个字符串:
我们可以在控制台先把参数的值打印出来
h 是刚才的随机数函数生成,u,l,p 是定值,e 是参数,经过翻页验证得到 e 是定值 排序并 join 得到以下结果:
在这里教大家一个小方法,如果函数不知道在哪定义,可以在控制台输入函数名字, 注意不要调用,点击输出就能定位到函数定义位置
进入查看
然后打断点重新调试
正是我们想要的值
然后分析加密参数
然后跟进_doFinalize函数得到以下
其实到这里就很明了了, 是一个 sha256,可以直接用 node 调用 js或者直接 Python 重写,然后带上计算出来的参数就能成功请求了
好了今天的分析就到这里, 有啥问题评论区见,关注我以后会分享更多爬虫方面的知识