爬取某二手书网数据 randomcodesign解密
声明:本文只作学习研究,禁止用于非法用途,否则后果自负,
如有侵权,请告知删除,谢谢!本人纯粹技术爱好,若侵犯贵公司的权益,请告知
今天看到群里有人说孔网的数据抓取不到,一直返回空数据,好奇看了下
1.通过抓包获取到数据包

2.将数据包进行重发看到,即使是重发的数据也是返回空的

3.于是从cookie里入手
randomcodekey:固定的,并有api返回
TY_SESSION_ID:固定的,但没搜索到有api返回
randomcode、randomcodesign:变化的,randomcode由上一个api返回,randomcodesign大概是通过randomcode加密得到的
F12 搜索randomcodesign关键词,可以看大randomcodesign的值是e,e又是通过JSEncrypt加密得到的

4.打上断点,刷新页面,console里看KFZ.tools.cookies("randomcode")的值和t.encrypt(String(e))的值,再与抓包的数据做对比,可以很清楚的看到两个值是一样的。

5.扣js代码

这个执行的步骤是创建JSEncrypt对象,放入公共的key和randomcode值得到e,e又通过t.encrypt(String(e))得到并复制到randomcodesign

将JSEncrypt全部复制下来,将rqEncrypt的调用也复制下来,在js的头部补上`window=global`,复制一个randomcode运行代码即可得到randomcodesign

6.还有一个参数TY_SESSION_ID,同样的方式搜索,生成的方式很简单,复制出来就可以用

7.在抓包工具中搜索randomcode是哪个返回的,randomcodekey也是从这个接口中返回

在请求中是没有任何加密的,可以确认这个就是最先请求并返回相关的数据的了

8.模拟请求,看相关参数能不能正常返回,测试结果是可以的

请求图书数据,将js代码通过execjs调用生成randomcodesign和TY_SESSION_ID


参数生成正常,就看能不能获取到数据了

请求后数据是正常返回的,就说明已经可以了
**如有侵权请联系删除**

