一、确定爬取目标
今日受害者网址:https://xueqiu.com/today
我们的目标是爬取雪球的热帖内容
二、逆向分析
直接全局搜索字符串,找到响应数据所在的接口(查看标头)
然后我们检索对应接口
ok,找到接口文件之后可以重放测试反爬参数了
把你认为可疑的参数抹掉,观察能否正常拿到数据
如果问题不大,下一步测试cookie存不存在反爬
上来直接人狼🐺话不多,把所有cookie都删了,发现拿不到数据包了,说明至少有一个cookie是必要的,或者说是被设置了反爬
下面就是一个个的删除测试是哪个cookie了呗。至于怎么删除,我的评价是二分法删除,直接二话不说就把客户端生成的cookie统统删掉
然后重放,发现不影响,说明客户端的那堆cookie并不影响
ok,现在我们继续来删除服务端的cookie
继续二分,可以先删除不带_的,或者什么其他的逻辑,别搞混就彳亍
剩下几个差不多的,可以直接记录下来比较,反正最后我们发现xq_a_token就是那个罪魁祸首
然后我们首先需要对xq_a_token进行定性,发现是服务端生成的(easy,内心窃喜😃)
ok,我们直接搜索xq_a_token,很快找到是在xueqiu.com/today这个接口里面进行的Set-Cookie
自然地,下一步,就是要过滤today接口了
结果发现today生成的位置一共有2处
我们先看瀑布流的第一个接口
再来看第二个接口,发现xq_a_token正是由这个接口生成
接下来我们愉快地编码实现,发现如果只是单纯地请求2次接口,得到的是相同的结果,第二次请求并不能拿到a_token
然后我们去观察浏览器上的第二次请求,发现是携带了2个cookie进行请求,才得到的xq_a_token
其中acw_tc比较容易搞定,通过会话session维持即可,重点就是由js生成的acw_sc_v2参数,这个是我们需要重点js逆向分析的对象
首先清除缓存和cookie,由于我们不清楚cookie生成的时机,为了确保正确注入,我们需要给网页下script断点,然后重新加载网页