type
status
date
slug
summary
tags
category
icon
password
WEB爬虫逆向学习
想法
基于逆向 api 接口进行爬虫分析的可行性和灵活性分配任务
一般而言,我们在逆向 api 接口时,接口方大都会有反爬措施和参数校验。特别是面对加密参数的时候,找加密算法需要一层层找到调用栈,然后分析算法,对于一些小型网站还容易处理。但是在面对一些大型网站,魔改算法、ast混淆、webassembly等等诸如此类的东西,不是说处理不了,再不济可以补环境抠代码是把,这个东西肯花时间就行。主要是这个东西更新迭代快,就算成功过去了。结果网站维护着更新一下秘钥,更新一下算法,就又得发时间精力去分析。
如果不想过早白头,耗费太多精力,毕竟人生苦短是吧。
具体实现
用 selenium或者类似的东西和 API 混合处理。
在调用api时,cookie、sign这类参数百分之百需要,我们不想浪费这么多时间去分析这些参数。
selenium 毕竟是基于浏览器,大家都说性能和灵活性和 调用 api 相比,相差太多。其实对性能没要求的还是可以直接用的。
- 分析 api 接口特征以及需要的参数
- 用 selenium 模拟请求相关数据一次,保存相关的请求加密参数(这些参数则是前端代码生成的,我们跳过寻找加密方法直接模拟浏览器请求一次获得这个参数)
- 通过 request 等库调用api ,携带前面保存的参数
- 如果请求失效,大部分就是参数过期了,继续调用 selenium 执行一次然后关闭
Hook 对象的设置属性和方法
hook Cookie
如果需要拦截使用JavaScript代码直接操作Cookie的情况,可以通过覆盖Document对象的cookie属性来实现。并将其中的某个Cookie值修改为指定的值。以下是一个示例代码,实际可以拦截任何属性和方法;
hook xhr
条件断点
在需要断点处右键 Edit breakpoint 然后在那个框框里面写表达式
比如:
- 作者:Xiaole BLOG
- 链接:https://xiaole.me/article/okgajih
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。