改进如何检测并标记流量数据中可能的爬虫

管理后台现在可以识别可能的爬虫流量——即那些使用真实浏览器 JavaScript 但并非人类访客的自动化机器人和抓取器——并将这些页面浏览量与您真实的流量数据区分开来。

在本主题中,我们将分享我们是如何识别此类流量的,以及您如何立即启用此功能。

:microscope: 变更内容

Discourse 一直将使用标准机器人用户代理(例如 Googlebot)进行自我识别的 Crawlers(爬虫)过滤到站点流量数据的单独类别中。但现代自动化流量更加隐蔽:它们运行完整的浏览器,执行 JavaScript,并混入您的页面浏览量数据中,表现得如同真实访问一样。管理员会在 Anonymous(匿名)页面浏览量中看到流量激增,结果发现是抓取器造成的,或者发现访客数量被 AI 机器人虚高了——却没有任何方法将它们与真正的匿名(即未登录)人类流量区分开来。

此更新在您的站点流量数据中增加了一个 Likely Crawlers(疑似爬虫)类别。当启用改进的爬虫检测时,被我们的启发式算法标记为疑似自动化的页面浏览量将被单独列出,从而使您的人类流量数据更加准确。

检测机制

该系统使用一组行为信号对每个浏览器页面浏览量进行评分:

  • 自动化用户代理 — 用户代理明确命名了无头浏览器或自动化工具(HeadlessChrome、Playwright、Puppeteer、Selenium、PhantomJS、jsdom)
  • 已验证的爬虫 ASN — IP 的自治系统编号(ASN)属于已知的爬虫网络(百度、Ahrefs、Yandex、互联网档案馆等)
  • 数据中心 ASN — IP 位于主要云或托管提供商的地址空间中
  • 速度 — 该 IP + 用户代理组合每小时生成的页面浏览量异常多
  • 快速导航 — 页面浏览量之间的中位间隔小于 5 秒
  • 会话流失 — 来自同一 IP + 用户代理的许多短会话(每个会话通常只访问一个页面)
  • 缺乏互动 — 会话及其相邻会话中没有记录到类似人类的互动(鼠标移动、键盘输入、滚动)
  • 低质量推荐来源比例 — 大多数页面浏览量没有推荐来源或来自外部,表明是直接访问 URL 而非通过站点内部导航
  • 单次直接请求 — 没有推荐来源的单次无互动页面浏览量;如果 URL 包含语言区域参数,评分会更高
  • 快速 IP 轮换 — 在单个会话中使用多个 IP,轮换速度快于人类操作
  • 过时的 Chromium — 过时的 Chrome 版本且没有互动信号

多个信号的评分会叠加;当页面浏览量具备上述一定数量的信号时,我们将其分类为 likely crawler(疑似爬虫)。

:gear: 在社区中启用改进的爬虫检测

目前,这被视为一项实验性变更。 我们仍在调整检测启发式算法,并欢迎反馈。

要启用此功能,请前往管理区域的 Upcoming changes(即将推出的更改)页面,找到 Improved crawler detection(改进的爬虫检测)项。更新 Enabled for…(启用范围)字段以让您的站点加入。

启用后,管理后台的站点流量部分将把疑似爬虫显示为单独的一个类别。

:warning: 重要提示:

  • 这并不是一门完美的科学,我们将随着时间的推移不断完善我们的启发式算法。但是,当我们更新这些计算时,不会回填历史数据。
  • 将页面浏览量分类为疑似爬虫不会拒绝或限制该请求。
  • 疑似爬虫的页面浏览量被排除在推荐来源、国家/地区和其他流量细分之外——这与目前处理已知爬虫的方式相同。

:mega: 您怎么看?

我们非常希望得到您的反馈——特别是那些注意到异常流量模式或无法解释的流量激增的社区。您站点的数字看起来准确吗?是否有被标记的访问看起来像是真实用户?请在本主题中分享您看到的情况。

1 个赞

听起来不错,它也会针对这些信号查看已登录的用户吗?

1 个赞

预计的爬虫(likely crawler)流量仍然会计入每月页面浏览量限制吗? :slightly_smiling_face: