Python 爬虫进阶必备 | 某私募数据平台数据解密逻辑解析
点击上方“咸鱼学Python”,选择“加为星标”
第一时间关注Python技术干货!
图源:极简壁纸
今日网站
今天把一个 500 人的交流群解散了,原因在群里的鱼友都知道
开车开到都没人聊技术,真的是麻了
重新给想要交流技术的群友开了个群,终于不用担心打开群聊社死了,舒心不少
有失散的鱼友可以在后台回复【入群】
爬虫逆向方向交流群,不要开车
这个网站就是来自新群
aHR0cHM6Ly9tYXgucGVkYXRhLmNuLw==
抓包分析
想看数据的话要用微信扫码登陆才行,进去还要绑定手机号 + 阿里滑块
账号 + 滑块的方式基本搞定大部分堆账号的高并发爬虫,比之前新闻上某个被爬虫 ddos 宕机的网站好上不少
【手动狗头保命】
登陆之后我们看看基金
栏目,这个网站是返回值加密,大概率都是走同一个解密逻辑
而且 post 请求提交的参数大都见词知义
所以分析返回值加密就完事了
加密定位
直接翻 js 的调用堆栈
通过分析可以找到下面的位置
ps:这一步也可以用油猴脚本快速定位,我第二次分析的时候就是想用通用脚本跑出来的,结果这一步解密操作是异步执行的。
而网站异步调用 JSON 的时候报错了,而报错的位置正好就是要分析的解密位置,算是误打误撞直接一步到位了。
就离谱。。
加密分析
定位到加密之后,我们就要分析下如何把这个代码用到脚本请求上了
先扣代码,看看用到了哪些参数
M
传入的是两个参数,分别是t
,n
这里的t
,n
都是请求返回的参数,t 对应这 data,n 对应 exor
然后进入下一步s["a"]
是获取当前浏览器缓存
输出一下调用结果
通过s["a"]
中的localStorage.getItem
我们知道他获取的是当前浏览器缓存的某一个值,我们对比一下就知道获取的什么值了
这里将loginToken
和exor
传入了L
中计算
这步很简单就是分隔拼接和转字符
然后将结果传入下一个表达式
同时将加密的数据传入B
中
看这个码表就是base64
,我们对比一下结果看看
网站计算结果如下
我们计算的结果如下
所以跳过B
,这里的Y
又是字符转化,继续下一步
这个时候代码运行到gunzipSync
,这个之前也教过怎么搞,在分析微店的那篇里,点击下方链接跳转
Python 爬虫进阶必备 | 某店登陆参数 UA 加密逻辑分析
同样都是导包,上次是用到了gzip
,我们导入的是pako
这次用到gunzipSync
我们再百度下看看导什么包
引用链接:https://www.educative.io/edpresso/what-is-gunzipsync-in-nodejs-zlib-module
到这里就完事了,我们搞一搞 js 在 python 里面调用看看
完事~
好了,以上就是今天的全部内容了。
我是没有更新就在摸鱼的咸鱼
收到请回复~
我们下次再见。
对了,看完记得一键四连,这个对我真的很重要。