前言
很多写爬虫的小伙伴在这个参数上犯愁了,像我自己常用的python来说,虽然有selenium去操作浏览器,但是效率和问题都比较多,用接口的方式也方便些,所以出几节关于这个参数的js解密文章,希望帮到小伙伴们
提示:文章仅供学习,请遵纪守法,做一个好市民!
一、正文开始
今天来分析下anti-token参数,首先打开拼多多的拼多多优惠券页面,那其他的页面也会有设置anti_content参数header也是可以的==>>拼多多优惠券地址<<==,这里的话可以看到,页面请求当中,给header中添加了anti-token参数并且设置了对应的加密字符串,我们可以在这里作为切入点进行参数的分析
1.寻找包含anti-token参数的文件
打开浏览的的网络=>点击这里的搜索图标=>输入关键词anti_token
可以看到这里有一个react_coupons的js文件,说明这个文件中可能有给这个请求头中添加了对应的加密字符串。
2.寻找文件中设置anti-token参数的位置
在知道参数出现文件后,我们就需要去找可能赋值的位置,那么我们也需要进行个断点调试,我们现在需要在来源中把对应的js文件找到,然后格式化以及搜索anti-token被赋值的位置
3.js调试查看参数在哪里生成
通过打短点,我们知道这个m.getAntiContent()是一个promise异步函数,且状态为pending的等待状态,所以我们需要跟进函数里面查看详细逻辑调用情况。
在这里开始生成promise异步函数
最终定位在这个代码位置,也就是react_anti的参数
function Vt() {
var t, n = f, r = {
};
r[n("0x156", "j6Rk")] = function(t) {
return t()
}
,
r[n("0x11", "iqO&")] = n("0x1e", "anZ%"),
r[n("0x12e", "J)bp")] = function(t) {
return t()
}
,
r[n("0x1", "#hpG")] = function(t, n, r) {
return t(n, r)
}
,
r[n("0x4", "Cu&R")] = function(t, n) {
return t < n
}
,
r[n("0xa", "Dm1H")] = n("0x39", "Dm1H"),
r[n("0x54", "fGLK")] = function(t, n) {
return t === n