反爬虫兵法演绎 20 讲
DS Hunter
反爬虫专家,前某公司研发总监
4905 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 29 讲
特别放送 (1讲)
反爬虫兵法演绎 20 讲
15
15
1.0x
00:00/00:00
登录|注册

11|反爬虫概述(三):前端反爬虫是怎么做信息收集的?

你好,我是 DS Hunter。
上一讲,我们已经了解了前端反爬虫中最主要的动作,key 的加密,但是除了这件事,前端还可以完成更多的细节来辅助整个反爬虫动作。
例如信息收集,它们虽然不会直接完成“拦截”的动作,看起来也没有什么贡献,但是对于工程师的生存以及“拦截”动作本身的指导和优化来说,却有着不小的辅助功能。最后,我们会把 key 的加密、信息收集这一切都聚集到规则引擎中统一收口。
这一讲,我们就把目光聚集在信息收集以及规则引擎这两大辅助部分,完成前端反爬虫的主要工作。

信息收集

我在01 讲中,就强调过信息一直是战争的核心,而信息收集是反爬虫的重中之重。公司有爬虫的需求,是希望在信息战中取得胜利,进而赢得商业的战争。而反爬虫方“收集信息”需求的产生,是由于工程师们想在反爬虫这场战争中打赢。
那么,到底要收集什么信息、怎么收集信息呢?后续我们又要怎么利用这些信息呢?我们按照反爬虫的动作顺序,先从信息预收集的部分开始说起。

信息预收集

在信息预收集模块,我们需要收集用户特征用于分析,而收集这些信息的方法,都可以认为是收集模块。当然,因为用户特征信息会被送到服务端进行分析检测,所以这里我们收集了哪些数据,应该是一个秘密,尽可能让爬虫方不知道才好。这和后面我们提到的“埋点统计分析”中的普通埋点是不同的。普通埋点,不怕爬虫方知道。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了前端反爬虫技术中信息收集和规则引擎的重要性及实现方法。信息收集在反爬虫中扮演关键角色,包括信息预收集和误伤统计收集,通过收集浏览器和业务特征,以及利用DOM指纹和MD5等方式提取用户指纹,保证信息的保密性和准确性。埋点统计分析涉及常规用户访问数据、爬虫访问数据和测试策略的线上效果收集,为效果检测和制作ROI报表提供数据支持。规则引擎则帮助实时变更生产规则,降低发布时间、研发成本,提升灵活性和降低出错概率。整体而言,本文通过深入的技术分析,揭示了前端反爬虫技术的重要性和具体实现方法,为读者提供了深入了解反爬虫技术的视角。文章还探讨了规则引擎的实现方式,即状态机,强调了状态机在实现任意流程图和规则判定方面的重要作用。通过状态机的应用,可以实现流程变更而无需发布,从而节约时间、提升灵活性和降低出错概率。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《反爬虫兵法演绎 20 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • peter
    请教老师几个问题: Q1:爬虫一般用什么语言开发? 是不是主要是用Python?用Java可以吗? Q2:“前端使用大量 Server 换取网络链接数”,server怎么理解? 前端不就是网页吗?难道在网页里加了“server”? Q3:“高写入速度、低读取速度的存储方式”,怎么理解? 不管什么存储,最后都是存到硬盘上。对于硬盘,写入、读取速度应该一样啊。 怎么会有写入速度高二读取速度低呢? Q4:客户端加密会更容易被爬虫方破解吗? “客户端收集的信息,会在客户端进行加密,然后传输过来”,客户端也 就是网页啦,网页上加密只能用js,而爬虫方是能够看到网页上的js代码的, 这样不就会被破解吗?

    作者回复: 第一个,语言无所谓,都一样。第二个,前端会有bff,在serverless还没完全一统天下之前,前端还是在处理服务器。这也就是nidejs当年出来的愿景之一。第三个,硬盘速度不变,但是不同数据结构会对读写有影响,一般优化读速度都要牺牲写速度,反之亦然。不过一般不至于自己写数据一。举个例子,无索引的表读取很慢,但是写入速度爆快,也不是无优点的。还有更多别的选择,大数据有专家研究这个。第四个,js会被破解,但是破解要时间,破解速度低于改版速度就等于不会被破解。举个例子,你每天上班,担心家里被盗。所有的锁都能破解,但是如果破解需要48小时,那等于永远无法破解,因为你24小时肯定会回。

    2022-02-22
    3
  • neohope
    1、规则引擎本质上跳了生产发布,而制定生产发布流程是为了降低线上变更风险。那么,如果测试质疑你在引入风险越过测试权限,如何回应呢? 规则引擎测试应该也是可以测到的,但对测试要求很高。 开发提供工具+测试验证,可能是一个折中方案。 要么让测试同学放过规则引擎,要不让测试同学可以更理解规则引擎,都可以。 2、理论上说信息收集是越多越好的,但是过多了又会对系统造成较大的压力。那么如何评估需要收集哪些数据呢? 先收集对业务分析+反爬虫最有用的数据,其余不够用再增加 3、收集的数据里不能包含用户隐私数据, 否则可能有法务风险,尤其是跨国项目。 那么, 如何保证自己收集的数据不会不小心包含用户隐私呢? 代码静态扫描,代码评审在代码方面排除 前端通过公共函数实现脱敏 后端通过公共组件或切面,实现日志模块自动脱敏,日志收集模块自动脱敏

    作者回复: 基本都没问题。问题1还有一种可能,测试不一定是质疑,可能就是单纯不想测。毕竟之前有版本多久一次,现在随时要测😂😂😂

    2022-03-15
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部