首先我们得有Fastmoss账号,否则是无法抓取到数据的。拥有账号后,我们直接进入达人选项。
逆向步骤一般分为:
- 接口确认: 找到我们需要的接口进行分析;
- 参数确认: 在接口中提炼出我们需要处理的参数;
- 重试校验参数逻辑: 查看参数之间关系;
- 寻找逆向入口: 找到参数生成位置 ;
- 获取加密算法: 实现参数逻辑;
- 爬虫代码编辑: 爬虫代码编写;
1- 确认接口
2- 参数确认
1- 对不同页进行多次请求
2- 对同一页进行多次请求
3- 重试校验参数逻辑
为了校验是否有其他参数。我们需要对每一个参数均进行校验。通过复制curl校验出必要参数如下(具体校验步骤见往期爬虫文章)。
params中:
page: 页数
region: 地区
order: 类目(达人,商品等)
pagesize: 一页多少数据
_time: 时间戳
cnonce: 校验参数
4- 寻找逆向入口
这里有两种方法。一种取巧, 一种耗时。大家可以自行选择。
1- 方式一(search搜索):
2- 方式二(堆栈搜索):
5- 获取加密算法
读代码可知:
1- fm-sign字段是有zn来的,我们查看zn是如何得到的。
2- zn是由kt对象中的encryptParams方法,以qe.Z为原始函数,生成的函数中,分别调用了Rn和da来的。
3- 那我们就需要看下Rn和da参数。
da的生成逻辑如下
Rn的生成逻辑如下
经过校验,Rn就是我们的params参数。da为空字符串。 qe.z是一个大的存储对象。那剩下的就是kt.encryptParams函数了。经过跟进,发现该函数就是加密逻辑。
看下加密逻辑,解读代码: