案例库 · 软件与 IT · 技术决策 · 1994–2022
科斯特的robots.txt让网站告诉爬虫哪些内容不用抓,由此成为网络规则
在爬虫导致服务器崩溃后,马丁·科斯特提出了一个纯文本的退出文件;爬虫编写者遵守了它,网络由此有了一套自愿遵守的规则手册。
Nexor · 马丁·科斯特
那一手
到1993年,年轻网络已经有了自动抓取页面的爬虫,有些爬虫对访问的服务器造成了巨大压力。马丁·科斯特在Nexor运营一台服务器,发现他的机器被一个网络漫游者以大约每秒一个文档的速度下载,早在1993年9月他就在抱怨反复出现的自动下载。
显然的解决办法是一个一个地管理爬虫:找到运营者,打电话或写信,要求他们停止。但这无法扩展,而且爬虫越来越多。因此,1994年2月25日,科斯特在www-talk邮件列表上发布了'重要:蜘蛛、机器人和网络漫游者',提出了一个'不需要任何服务器/客户端/协议改动'的标准:服务器可以公布其URL空间中机器人不应访问的部分。
该文件最初名为 /RobotsNotWanted.txt,后来变成 robots.txt——简短的名称之所以胜出,是因为DOS文件系统限制了文件名的长度。1994年7月3日,科斯特宣布了'机器人排除标准';当时运行的大多数机器人都已经使用或承诺支持该标准。每个爬虫只需在抓取前获取该文件并遵守其规则。
让该标准持久的关键在于其设计:固定的知名URL、纯文本、没有中央注册机构,也没有强制执行——文件之所以有效,只是因为爬虫编写者同意检查它。28年后,IETF将该惯例正式定为RFC 9309(2022年),至今仍是网站和机器人协商访问的网络标准。
为什么管用
- 不需要协议、服务器或浏览器改动,采用它只需在爬虫端做一个小改动。
- 固定的知名路径让每个网站所有者有一个地方声明规则,每个爬虫有一个地方查找。
- 自愿遵守符合激励机制:忽略该文件的爬虫会失去让它有用的善意和访问权。
- 科斯特将主要机器人编写者纳入了1994年的邮件列表讨论,因此事实标准在诞生之际就已得到采纳。
可以搬走什么
当规则无法强制执行时,设计它使遵守几乎免费,并使掌权方有动力遵守;然后该标准自我执行。
后来呢
robots.txt成为网络的默认访问契约,被搜索引擎和爬虫遵守了三十年。2019年它25岁了;2022年9月,IETF发布了RFC 9309《机器人排除协议》,由科斯特与谷歌的加里·伊利斯等人撰写,增加了正式的错误处理规则和缓存规则。在2020年代关于AI爬虫和内容许可的辩论中,它仍然处于中心地位——这个格式比任何取代它的尝试都更长寿。
资料来源
发现哪里写错了?告诉我们。