技术深度解析
SourceHut宕机事件是非恶意但无协调的负载导致基础设施故障的教科书式案例。该平台基于Go、PostgreSQL和Redis的轻量级技术栈构建,设计初衷是追求效率,而非作为AI训练的批量数据仓库。这些爬虫很可能使用了`wget`、`curl`以及带有轮换用户代理字符串的自定义Python脚本等工具,通过将请求分散到数千个IP地址来绕过基本的速率限制。关键的是,许多爬虫无视了`robots.txt`文件——这是一种自愿遵守的协议,SourceHut明确使用它来禁止对`/git/`和`/archive/`路径的抓取。这并非技术故障,而是策略失效:`robots.txt`没有强制机制,而AI公司也几乎没有任何动力去遵守它。
从工程角度来看,攻击面在于Git Smart HTTP协议。每次对大型仓库(例如约3GB的Linux内核)的克隆请求,都会触发服务器端执行`git-upload-pack`进程,该进程负责压缩和流式传输对象。当数百个并发爬虫各自请求不同的仓库时,服务器的进程表被填满,内存飙升,PostgreSQL连接池也被耗尽。负责追踪仓库元数据和用户权限的数据库成为了瓶颈。SourceHut的架构采用单一主数据库加只读副本,无法足够快地水平扩展以应对爬虫带来的读密集型工作负载。
一个关键的技术细节是,某些爬虫使用了“浅克隆”(shallow clones)和“无对象克隆”(blobless clones)来减少数据传输。然而,即使是这些优化后的请求,也需要服务器端进行计算来生成打包文件。爬虫不仅仅是在下载原始文件;它们还在强制服务器计算差异和增量,这是CPU密集型的操作。对爬虫行为的比较颇具启发性:
| 爬虫类型 | 用户代理模式 | robots.txt合规性 | 平均请求/秒 | 对服务器CPU的影响 |
|---|---|---|---|---|
| Common Crawl Bot | `Mozilla/5.0 (compatible; CommonCrawl/1.0)` | 部分合规(忽略某些禁止项) | 50-100 | 中等 |
| OpenAI GPTBot | `Mozilla/5.0 (compatible; GPTBot/1.0)` | 基本合规 | 10-20 | 低 |
| Google-Extended | `Google-Extended` | 合规(遵守禁止项) | 5-10 | 极低 |
| 未识别的LLM爬虫 | 伪造的Chrome/Firefox UA字符串 | 不合规 | 200-500 | 非常高 |
| Anthropic Claude Bot | `Anthropic-LLM/1.0` | 部分合规 | 30-50 | 中等 |
数据要点: 最具破坏性的爬虫并非来自主要AI实验室的那些知名且合规的机器人,而是那些主动伪装成人类用户的未识别、激进的爬虫。它们很可能来自那些无力支付许可费用、转而采用暴力抓取方式的小型AI初创公司或数据中间商。
对于平台运营者来说,一个相关的开源工具是`crawler-detection`库(GitHub: `monperrus/crawler-detection`,约1.2k星标),它使用机器学习来分类用户代理字符串和行为模式。然而,这是一场猫鼠游戏:随着检测技术的改进,爬虫也在进化,以更准确地模仿人类浏览行为,包括执行JavaScript和维护会话Cookie。
关键参与者与案例研究
SourceHut事件是AI公司与内容平台之间一系列冲突中的最新一例。关键参与者可分为三类:平台、AI实验室和开源社区。
受困平台:
- SourceHut: 煤矿中的金丝雀。其创始人Drew DeVault一直呼吁进行道德抓取。该平台现在计划对所有Git操作强制实施API密钥,此举将破坏许多现有工作流程,但可能是生存所必需的。
- GitHub: 由于其庞大的Azure基础设施,尚未遭受类似宕机,但已悄然对未认证的API请求实施了速率限制(匿名用户从60次/小时降至20次/小时)。GitHub还提供付费的“Copilot”API,允许AI公司结构化地访问代码,从而从爬虫免费寻求的同一数据中创造收入流。
- GitLab: 采取了不同的方法,推出了“已验证爬虫”计划,要求AI公司注册并同意速率限制。未经验证的爬虫会受到严格限制。根据内部指标,自2026年第一季度以来,这已使爬虫流量减少了70%。
AI实验室及其策略:
| 公司 | 爬虫名称 | 数据获取方式 | 预估年度数据成本 | 关于抓取的公开立场 |
|---|---|---|---|---|
| OpenAI | GPTBot | 网页抓取 + 授权数据集(例如Reddit, Shutterstock) | 5000万美元以上(估) | 支持通过robots.txt选择退出;不向平台提供补偿 |
| Google DeepMind | Google-Extended | 网页抓取 + 专有数据(例如YouTube, Books) | 1亿美元以上(估) | 通过Google Search Console为网站所有者提供控制权;无直接付款 |
| Anthropic | Claude Bot | 网页抓取 + 授权数据集 + 人工反馈 | 3000万美元以上(估) | 承诺遵守robots.txt;但未明确补偿机制 |