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