Dennis Schubert 这么说道——
这是我最近在 #diaspora 团队内部论坛发布的一条信息摘录。背景是我最近因为 diaspora*
项目的网络基础设施(如 Discourse、Wiki、项目网站等)出现的延迟和负载峰值而受到困扰,查看流量日志后让我十分愤怒。
在过去 60 天里,diaspora*
的网络资产共接收了 1130 万个请求。换算下来,大约是每秒 2.19 个请求 —— 老实说,这并不算多。虽然比起普通的个人博客稍多一些,但也不至于超出我的基础设施承载能力。
然而,这里有些让我十分愤怒的地方。查看用户代理(User Agent)统计数据后,排名前几的爬虫是:
- 278 万个请求 —— 占所有流量的 24.6%,来自
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot)
。 - 169 万个请求 —— 占 14.9%,来自
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot)
。 - 49 万个请求 —— 占 4.3%,来自
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
。 - 25 万个请求 —— 占 2.2%,来自
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot) Chrome/119.0.6045.214 Safari/537.36
。 - 22 万个请求 —— 占 2.2%,来自
meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)
。
类似的请求还在继续。将这些主要的用户代理(UA)分组加起来,发现我的服务器有 70% 的工作量都在处理这些 训练大语言模型(LLM) 的爬虫,它们的唯一作用就是一次又一次地抓取互联网上的内容。
哦,当然,它们不仅仅是爬取一次页面然后离开。不,它们每 6 小时就会回来一次,为什么不呢?而且它们根本不关心 robots.txt
,为什么要理会呢?最棒的是:它们爬取的通常是最无聊的页面。最近,ChatGPT 和 Amazon 的爬虫同时在抓取 Wiki 的整个编辑历史。我是认真的 —— 它们把每一页的每一个差异(diff)都索引了,频繁地每秒超过 10 个请求的高峰。这让 MediaWiki 和我的数据库服务器非常不高兴,导致了负载峰值,最终使得真实用户的访问变慢甚至停滞。
如果你尝试限制这些爬虫的访问,它们会不断切换 IP 地址。如果你尝试通过用户代理字符串来屏蔽它们,它们会切换到其他非爬虫的 UA 字符串(真的是这样)。这简直就是对整个互联网的分布式拒绝服务攻击(DDoS)。
作为对比,看看那些正常的爬虫——例如经典的搜索引擎爬虫,它们是怎样表现的:
- 16,600 个请求 —— 占 0.14%,来自
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
。 - 15,900 个请求 —— 占 0.14%,来自
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/116.0.1938.76 Safari/537.36
。
因为这些爬虫知道没有必要重复抓取同样的内容。
帖子下的评论区有人建议——
I wish there was some way to automagically harm them somehow. 我希望有某种方法可以自动伤害他们。 Like detect them and send them to sniff something that wrecks their training data, like a list of random-generated nonsense words or something. 比如检测它们并让它们嗅探一些破坏训练数据的东西,比如随机生成的无意义单词列表或其他东西。
不过这看上去有点伤敌一千自损八百的意思了,而截至目前似乎没有讨论出什么可执行的方案来对抗 AI 爬虫的问题。