返回

文章详情

通过滚动行为检测抓取机器人

Hacker News2026年8月20日 22:47

自从我第一次阅读了 Kwang-Il Goh 的《复杂系统中的突发性和记忆》一文,我便对文中展示的两个公式痴迷不已。突发性(B)及其同样重要的对应物记忆(M)让我们能够理解基于事件的系统的动态。我们可以利用它们分析已发送的电子邮件、短信甚至心跳的行为,当我们仅知道这些事件发生的时间时。这样,我们可以明确确定哪个模式是人类的,哪个则不是,基于数据集中已分类的数据。我们知道人类回复短信的方式是突发性的(他们回答所花的时间并不均匀),而简单的机器人则尽可能快地响应,因此它们的 B 和 M 系数不同。Goh, K.-I., & Barabási, A.-L. (2008),图4 在之前的个人研究中,我利用这两个值根据请求的时间区分人类和机器人会话,这通常是有效的,但这种方法把从加载 CSS 和 JS 文件的任何浏览器发送的会话识别为人类,使得更高级的机器人如 ClaudeBot 通过使用无头浏览器得以表现得像人类。它本质上区分了精心制作的请求与从真实浏览器发送的请求,而不是机器人和人类。 滚动行为 不久前我注意到一种明显的人类行为,我相信机器人很难轻易模仿,即滚动。当我使用滚轮滚动页面寻找信息时,我通常并不是线性向下滚动,直到找到我所寻找的内容,而是以一种突发的模式进行。例如,这种模式可能更接近于时间序列 a 或 e,而不是 c。Goh, K.-I., & Barabási, A.-L. (2008),图1 我认为大多数抓取机器人开发者仍未完善他们的滚动模式,因此我决定测试突发性和记忆是否适用于滚动事件的事件间时间,这些变量是否能在机器学习模型中具有预测能力,以区分人类和机器人。为了做到这一点,我使用了由 Ethan Wang 等人提供的论文《FP-Agent: Fingerprinting AI Browsing Agents》中提供的数据集,作者在其中解释了他们如何在受控环境中创建一个可以区分不同 AI 浏览代理的机器学习模型的过程(一个专门为了这个目的而制作的网站)。他们记录了不同代理和人类在其网站上导航的数据。他们的模型得出了良好的结果,但我认为在应用于不同网站时,这种模型在真实世界环境中的有效性不高,因为这涉及大量的变异。尽管如此,他们还是在 OSF.io 上提供了数据集的下载。我计算了每个代理在每个页面的 JavaScript "scroll" 事件的突发性和记忆值(每个访问的页面一个突发性和记忆值)。这些是结果:我们可以观察到人类的分布与其他代理明显不同,呈现出较高的突发性系数和几乎没有记忆;唯一有时与人类相似的代理是 ChatGPT Agent。这个数据看起来很有前景,但为了进一步证明这两个值是否具有预测价值,我训练了一个 LightGBM(决策树梯度提升)模型来分类每一个单页面的交互。该模型只有两个可用特征,B 和 M,并且必须预测哪个代理执行了这些交互。结果准确率为 73.4%,这并不算太糟。正如预期,该模型主要将人类和 ChatGPT Agent 混淆,这很可能是由于特征数量较少或数据集过小(每个代理约 150 个数据点太少了),该模型需要其他特征以进一步区分它们。 结论 滚动行为似乎是区分机器人和人类的一个相关数据点,而突发性和记忆在受控环境中证明了它们具有预测能力。这种方法显然在不需要滚动的网站上无效;另一方面,像 Wikipedia 这样的博客或信息网站则最有能力利用此方法。尽管如此,这篇博客中展示的模型并不够准确,但如果结合其他动作(例如鼠标移动或输入)提取更多特征,我相信可以创建一个能够保护网站免受抓取机器人的通用模型。我将继续在这个网站上发布我的研究。接下来,我会关注鼠标移动模式。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡