如不关心整个完整过程,可以直接跳到文章最后获取完整代码!
目录
摘要:
在爬取某88网站店铺回头率参数的时候,发现了一个会变的参数,sign。
本篇主要记录如何自己写出这个sign参数。
主要思路:
打开浏览器开发者工具-->打开或刷新网页-->查找回头率参数-->定位到回头率数据-->在栈中定位代码位置-->抠出js代码-->本地回放-->构造sign参数-->发起请求-->正确得到响应数据
具体步骤解析介绍:
打开浏览器开发者工具,谷歌浏览器可以在网页任意位置点击鼠标右键(或者F12)直接打开浏览器开发者工具
在开发者工具中,查找该页回头率数据,例如本次例子中,回头率为22%。直接搜索22%搜不到。那其实大概率是以下两种情况:
- 返回的数据被加密了
- 返回的数据不是22%,可能只有22,或者是0.22经过计算后得到22%之类的
经过一顿搜索,发现还好,返回数据没被加密,只是经过重新计算后得到的22%(按照0.22搜索)
搜索结果如下:
然后查看请求的数据
页面再次刷新,该参数又会发生变化,但其他内容都一样。而且拿到的数据也一样。
因此基本可以判断,该参数会加密参数。并且在直接尝试写脚本去请求之后,果然该参数如果随机设置,服务端不会返回正确数据(不在此做具体尝试的赘述)
接下来,就需要对这个sign参数进行逆向,并且自己构造出该参数。
通过Initiator查看栈信息,点开js后,搜索sign。基本可以确定到就是h