文章目录

  • 前言
  • 一、正文开始
    • 1.寻找包含anti-token参数的文件
    • 2.寻找文件中设置anti-token参数的位置
    • 3.js调试查看参数在哪里生成

前言

很多写爬虫的小伙伴在这个参数上犯愁了,像我自己常用的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},r[n("0x100", "HZS0")] = function(t, n) {return t > n},r[n("0xd8", "0Xnq")] = function(t, n) {return t <= n},r[n("0x2c", "0Xnq")] = function(t, n) {return t - n},r[n("0x92", "z@XA")] = function(t, n) {return t << n},r[n("0x75", "5QnQ")] = function(t, n) {return t > n},r[n("0x149", "dmn8")] = function(t, n) {return t - n},r[n("0xc5", "bpr9")] = function(t, n) {return t << n},r[n("0x37", "GmkI")] = n("0x164", "wFxG"),r[n("0xfb", ")!%7")] = function(t, n) {return t + n},r[n("0xe5", ")!%7")] = n("0x76", "Vta9"),r[n("0x140", "oemU")] = n("0x103", "Iaxw");var e = r;if (!rt)return "";var o = e[n("0x141", "5^JL")], a = (t = [])[A].apply(t, [ct ? [][A](e[n("0x10a", "5QnQ")](Kt), lt[o]()) : d[o](), ht[o](), kt[o](), vt[o](), mt[o](), _t[o](), pt[o](), bt[o](), Ct[o](), gt[o](), St[o]()].concat(function(t) {if (Array.isArray(t)) {for (var n = 0, r = Array(t.length); n < t.length; n++)r[n] = t[n];return r}return Array.from(t)}(wt[o]()), [yt[o](), Rt[o](), Gt[o](), Pt[o](), qt[o](), Ot[o]()]));e[n("0x7c", "Dm1H")](setTimeout, (function() {e[n("0x121", "HZS0")](Dt)}), 0);for (var u = a[I][p](2)[k](""), W = 0; e[n("0x60", "%LaC")](u[I], 16); W += 1)u[e[n("0x88", "wFxG")]]("0");u = u[l]("");var x = [];e[n("0x111", "#hpG")](a[I], 0) ? x[M](0, 0) : e[n("0x16", "Mju&")](a[I], 0) && e[n("0x11c", "^o[d")](a[I], e[n("0x66", "Hv26")](e[n("0x119", "(odD")](1, 8), 1)) ? x[M](0, a[I]) : e[n("0xc3", "GmkI")](a[I], e[n("0x30", "Iaxw")](e[n("0xed", "DxB8")](1, 8), 1)) && x[M](rt[b](u[R](0, 8), 2), rt[b](u[R](8, 16), 2)),a = [][A]([3], [1, 0, 0], x, a);var s = i[e[n("0xcf", "(5GC")]](a), h = [][_][n("0x6c", "oemU")](s, (function(t) {return String[y](t)}));return e[n("0xd3", "[xh1")](e[n("0x85", "5^JL")], c[e[n("0x155", "uYFB")]](e[n("0x10c", "GmkI")](h[l](""), tt[l]("")), c[n("0x91", "ho[k")]))}

这个Vt()函数的return就是返回了anti-token的参数值,这个Vt函数里面的绿色的字符都是做了混淆,下图的红色剪头其实就是给r这个对象赋值了功能(函数),不用管他

具体的生成逻辑在下图红色方框中

红色方框中才是整体的参数形成重要代码块

[A].apply(t, [ct ? [][A](e[n("0x10a", "5QnQ")](Kt), lt[o]()) : d[o](), ht[o](), kt[o](), vt[o](), mt[o](), _t[o](), pt[o](), bt[o](), Ct[o](), gt[o](), St[o]()//
wt[o]()), [yt[o](), Rt[o](), Gt[o](), Pt[o](), qt[o](), Ot[o]()])

以上的函数当中其实就是在js文件加载的时候,传入了鼠标点击位置,当前url,当前访问cookie,当前ua等信息,通过生成数组并且合并转换编码得到参数值,下篇文章将会带领大家调试具体的函数生成过程。

在调试以及分析中有问题可以加群互相讨论技术
点击链接加入群聊:脚本&爬虫&web技术讨论

最详细的拼多多anti-token||anti_content算法分析过程(一)相关推荐

  1. python爬虫 拼多多_拼多多爬虫之anti_content分析

    首先来看抓包: 查找相关的代码: this.request = function() { var e, t = (e = c.a.mark(function e(t) { var n, o, a, i ...

  2. 拼多多更新token

    token是有有效期的,快要到期的时候可以调用刷新token的接口让token更新一下,然后继续使用

  3. 拼多多盈利模式分析研究

    摘 要 在网络零售业快速发展的今天,电商行业迎来了一个巨大的商机,这也给了中小规模.新进入市场的企业带来了更多的竞争.在竞争日益激烈的情况下,零售电子商务企业如何脱颖而出,如何找到适合自己的盈利模式, ...

  4. 拓嘉辰丰:如何设置拼多多网店的信息提示音?

    在商家经营拼多多网店的时候,我们知道平台对于网店的回复率是有着一定规则的,如果没有达到规定回复率,则网店将会受到平台的处罚.因此拼多多商家在经营的过程中,会选择设置提示音,以此来避免错过任何消息,那么 ...

  5. 拼多多新手开店的出六大评完整工过具程,总结八年运营经验月入上万的干货分享快收藏起来

    大家好,我是爆款助手,内容太详细,仔细看完,有不理解的,文章最后福利资料自选哦,私信(拼多多)即可. 前最受欢迎的拼多多新手开店,让一些人想在网上赚钱找到合适的方式,每月有数千到数万的收入,拼多多新手 ...

  6. mongoose如何使用多对多_拼多多新手quot;开车quot;技巧:告别有流量没转化!缺钱也不怕...

    | 电商 | 拼多多 | 干货 | 这是一个电商学习的平台 相信你会深深地爱上这里 今天给大家整理了一些拼多多新手商家经常遇到的关于使用oCPX和智能词包的问题,有一些问题是很普遍的,所以这篇文章一定 ...

  7. 围城之势已起,拼多多骑虎难下

    文丨陈选滨 来源 | 螳螂财经(ID:TanglangFin) 日前,拼多多宣布拟发行8.75亿美元可转换优先债券,期限至2024年.在风险对冲的操作下,拼多多股价出现波动. 据9月25日消息,拼多多 ...

  8. 拓嘉辰丰:影响拼多多直通车推广效果的因素有哪些?

    在经营拼多多网店的过程中,我们知道直通车是可以有效帮助网店吸引到足够精准的流量进店转化的,但是在使用的过程中,我们发现直通车的推广效果也是存在着一定影响因素的,那么哪些因素会影响拼多多直通车的推广效果 ...

  9. 拼多多“造血”新农商

    全国脱贫攻坚总结表彰大会在京召开,宣告着历时8年,中国现行标准下近1亿农村贫困人口全部脱贫,832个贫困县全部摘帽. 同时,由中央广播电视总台和国家乡村振兴局联合制作脱贫攻坚政论专题片<摆脱贫困 ...

最新文章

  1. The Third Revolution in Sequencing Technology
  2. 《元学习meta learning)》2020综述论文大全!
  3. 2015第26周六《谁动了我的奶酪》书摘
  4. verilog数字跑表设计实现与仿真
  5. sketch钢笔工具_Sketch和Figma,不同的工具等于不同的结果
  6. 仅仅有人物没背景的图片怎么弄_五分钟写作课 人物篇 人物的出场是个关键时刻...
  7. Java多线程(6)--Callable接口创建线程
  8. wpf window 不执行show 就不能load执行_关于机器学习中的Scikit-Learn,你不知道的10个实用功能...
  9. hbase由于一台regionserver和datanode挂死导致hlog split问题
  10. saber仿真软件_返场预订,视频课程丨开关电源环路补偿设计与仿真
  11. 我的软考高项考试之旅
  12. 大华海康NVR录像JAVA下载及WEB播放
  13. usb-blaster 驱动在设备管理器处更新且安装成功后仍有黄色感叹号,显示:Windows 无法加载此软件的设备驱动程序。驱动程序可能损坏或丢失(代码:39)
  14. 【anaconda】Multiple Errors Encountered与安装包graphviz失败
  15. 《Java程序员,上班那点事儿》前言
  16. WebRTC音频降噪使用
  17. Redis数据结构Hash应用场景-存储商品、购物车、淘宝短链接、分布式Session、用户注册、发微博功能
  18. 实验电子商城 mvc设计思想简介
  19. 第1章 初识计算机病毒 1.1 计算机病毒基础知识
  20. python gui 三维 pyqt5_【PyQt5-Qt Designer】在GUI中使用pyqtgraph绘图库

热门文章

  1. Android路灯管理系统源码,路灯信息管理系统 4.0.0
  2. 2019电大计算机专业英语1答案,2019年秋电大开放英语1形成性考核册答案,最..._公共英语考试_帮考网...
  3. python北京培训视频
  4. 谷歌浏览器Chrome黑屏\提示内存不足\应用程序错误的解决办法 虚拟内存应该设多大
  5. dedecms切换模板css,dedecms织梦网站怎么更换模板主题
  6. 非标自动化转行机器人_怎样将非标自动化经验应用到机器人自动化- 智造家
  7. 饥荒mod制作初学笔记
  8. Python-Django毕业设计基于微信小程序订餐系统(程序+Lw)
  9. niagara的插件下载_Niagara下载-Niagara桌面下载v0.31.1 中文版-西西软件下载
  10. [赛后总结]COCI2016/2017 Round#3题解