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 然后在那个框框里面写表达式
比如:
Parsec 远程连接软件介绍及应用记录
Xiaole BLOG
Xiaole BLOG
生命不息,折腾不止。 编程爱好者 特效爱好者
公告
type
status
date
slug
summary
tags
category
icon
password
🎉小乐博客欢迎您的到来🎉
👏博客迁移到 notion👏