记一次爬虫-js逆向解析学习

本文介绍了作者在阅读一篇关于反爬技术的文章后,如何通过调试和分析JS代码,理解其中的逻辑,并计划将其转化为Python爬虫的过程。重点探讨了涉及的数组操作、循环、switch case语句以及函数处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NightTeam微信公众号上看见大佬一篇文章听说你碰到这种反爬就歇菜了?手把手教你秒杀它!
大佬具体扣代码没写,很是受伤,于是自己摸索了大半天,捋顺了大部分逻辑,写出来分享一下
ps:发送消息「隐式Style-CSS」到大佬微信公众号「NightTeam」即可获取样例地址~
前面分析,大神写的非常详细,具体看大神写的就好
在这里插入图片描述
在这里插入图片描述

  • 观察与分析977行和1133行代码
    977处代码定义了变量_0xa12e1133处代码是一段for循环,经过观察1133处代码较为复杂,有许多未知变量:words,_0xea12, document,打上断点调试一下
  • 调试结果
    首先for函数主体for (var i = 0x0; i < words[_0xea12('0x18')]; i++) {
    iwords[_0xea12('0x18')]明显为数字,用来控制函数循环次数
    把鼠标移动到words上
    在这里插入图片描述
    可以看到words被替换的单词数组在这里插入图片描述跳转之后的函数
    在这里插入图片描述
    可以看到 var _0xea12 = function (_0x56430f, _0x7f6841)
    传递了2个参数_0x56430f, _0x7f6841 又定义了一个变量 _0x4f7a0f接受 _0xa12e函数_0x56430f处理的结果
    var _0x4f7a0f = _0xa12e[_0x56430f]最后返回 _0x4f7a0f
    来看看_0xa12e
    在这里插入图片描述可看到上面代码定义了_0xa12e,经过函数变换之后结果如图所示。为长度48的数组
  • 回过头来看1133行代码
    一点一点的利用Console来进行测试,首先分析words[_0xea12('0x18')]
    在这里插入图片描述
    可以看到0x18结果为24,之后_0xea12函数(返回结果为数组)取下标为24的元素,结果为length,之后words数组调用length方法,取得words数组的长度结果为24
    所以for函数变为了for (var i = 0x0; i < 24; i++) {
    同理,替换之后的函数变为
for (var i = 0x0; i <24; i++) {
   
   
            try {
   
   
                document["styleSheets"][0x0]["addRule"]('.context_kw' + i + "::before", 'content:\x20\x22' + words[i] + '\x22');
            } catch (_0x527f83) {
   
   
                document['styleSheets'][0x0]['insertRule'](
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值