7 月 1 日,Google 在其博客上发布了一个重要消息,它宣布,Google 开源了存储 robots.text 解析器的 C 库,以便推动 REP(Robots Exclusion Protocol,也称爬虫协议、机器人协议)成为互联网标准。
1994 年,荷兰软件工程师 Martijin Koster 提出了 REP 的概念,通过 robots.txt 文件来隐藏一些信息不被搜索引擎抓取,比如,只抓取应该被抓取的页面;屏蔽一些网站中较大的文件;屏蔽一些无效链接;保密敏感信息等。
雷锋网(公众号:雷锋网)注:搜索引擎的爬取方式(图片来自百度百科)
我们可以这么来理解,网站就好比一个房间,robots.txt 文件就是主人在房门上悬挂的“请勿打扰”的提示牌,可以让人止步于一些存放贵重物品的房间,但它终究不是守门人,无法阻挡怀有恶意的窃贼。
联合多方力量上交提案
25 年过去了,业内对 REP 表示了充分的认可,但现在它更像是一个道德规范,而不是非官方的互联网标准。
不过,Google 正致力于改变这一现状。Google 在博客中说道,
我们希望帮助网站所有者和开发者在互联网上创造令人惊叹的体验,而不是担心如何控制抓取工具。Google 和协议的发起人,以及其他网络管理员和搜索引擎共同起草了一份关于如何在现代网络上适用 REP的提案,目前已经上交给了 IETF(雷锋网按:Internet Engineering Task Force,非盈利互联网开放标准组织,负责开发和推广自愿互联网标准)。
Google 的提案反映了 20 多年来 Googlebot 和一些主要网络爬虫,以及大约 5 亿依赖 REP 的网站应用 robots.txt 的实际经验,并且在现代网络层面做了扩展,定义了 robots.txt 解析和匹配的所有之前未定义场景:
- 任何基于 URI 的传输协议都可以使用 robots.txt;它不再局限于 HTTP,也可用于 FTP 或 CoAP。
- 开发人员必须至少解析 robots.txt 的前 500 KB 内容。定义文件的最大值,以确保打开连接不需要花太长时间,从而减轻服务器上不必要的压力。
- 新的最长缓存时间为 24 小时或可用的缓存指令值,赋予网站所有者灵活性随时更新 robots.txt,而爬虫程序不会因此使网站过载。
- 当前可以访问的 robots.txt 文件由于服务器故障而变得不可访问时,这些无法访问的页面将在很长一段时间内不被检索。
开源 robots.txt 解析器
除了联合多方力量向 IETF 上交提案,Google 还作出了其它努力,开源了自己 robots.txt 文件库旨在创建标准化语法来创建和解析文件,消除所有混淆。
Google 在博客中这样说道:
REP 是网络中最基本,最关键的组成部分之一,但它只是约定俗成的标准,这难免让人感到沮丧;这给网络管理员和爬虫工具开发者带了困扰……推动 REP 成为行业标准这件事十分重要,因为它符合每个人的利益。不过,对于解析 robots.txt 文件的开发人员来说,这种标准化需要付出更大的努力,所以,我们开源了含有 robots.txt 解析器的 C 库。
据称,这个 C 库已经存在了 20 年之久,里面包含了自 90 年代起就编写的代码片段。在这 20 年里,该库经历了不断的发展,也覆盖了许多在编写 robots.txt 文件方面非常实用的案例,这对想要构建自己的解析器的开发人员来说很有助益。
除此之外,Google 还在开源软件包中添加了一个测试工具,可以帮助编写人员测试 robots.txt 的效果。
外界的态度
在 Google 开源 robots.txt 后,这个话题引起了广泛的关注,甚至登顶 Hacker News。
Constellation 研究公司(雷锋网按: 专门从事数字化转型和颠覆性技术方面的技术研究与咨询)的分析师 Holger Mueller 告诉 SiliconANGLE,标准化对于互联网正常工作至关重要,很高兴看到 Google 在 REP 这样基本的东西上取得领先。
Holger Mueller 还补充道,
与任何开源倡议和标准化尝试一样,我们还需要静待,看看此举到底会不会成功,我们又能在此之中学到什么。这是一个值得密切关注的领域。
在国内,网友们也纷纷高呼“谷人希”(雷锋网按:“谷歌,人类的希望”)来表示对该事件的赞赏。