外媒 VentureBeat 报道称,谷歌希望将发展数十年的 robots.txt 解析器开源,以推动 REP 成为搜索引擎爬虫的行业标准。机器人排除协议(REP)是荷兰软件工程师 Martijn Koster 于 1994 年提出的一个标准,几乎已经成为了网站不希望被搜索引擎收录的注释的事实标准。
![4624570-00ece1fb7b58c60d.png](https://i-blog.csdnimg.cn/blog_migrate/2734a53d45de9726632f861000346132.webp?x-image-process=image/format,png)
(截图 via VentureBeat)
比如谷歌爬虫(Googlebot)就会在索引某个网站时扫描 robots.txt 文件,以确定其应该忽略掉哪些部分。如果根目录中未包含该文件,那搜索引擎就会默认索引(index)全站内容。
值得一提的是,,该文件不仅可以用于提供直接的爬虫索引,还可以被用来填充一些关键字,以实现“搜索引擎优化”(SEO)。此外,并非所有抓取工具都会严格遵从 robots.txt 文件。
比如几年前,互联网档案光就选择了为其“时光机”(Wayback Machine)归档工具提供支持,另外一些恶意抓取工具也会有意忽略 REP 。
不过需要指出的是,即便 REP 已经成为了默认的实施标准,但它实际上从未成为真正的互联网标准,正如互联网工程任务组(IETF - 一家非营利性开放标注组织)所定义的那样。
为了推动这项转变,谷歌正在积极参与行动。这家搜索巨头表示,当前的 REP 可以被“解释”,但并不总是涵盖边缘化的案例。
作为补充,谷歌提出了更全面的“未定义场景”。比如在执行一次“扫描已知内容”的任务时,爬虫该如何处理“服务器出现不可访问故障”的 robots.txt 文件、或者有拼写错误的规则?
谷歌在一篇博客文章中写到:“对于网站所有者来说,这是一项极具挑战性的问题。因为模糊的事实标准,让他们很难恰当地编写规则”。
我们希望帮助网站所有者和开发者在互联网上创造出令人惊叹的体验,而无需担心如何对抓取工具加以限制。
于是谷歌与 REP 原作者 Martijn Koster、网站管理员、以及其它搜索引擎合作,向 IETF 提交了一份关于《如何在现代网络上适用 REP》的提案。
该公司尚未公布该草案的全貌,但却是提供了一些指引。比如任何基于 URI 的传输协议,都可以适用 robots.txt 。且其不再局限于 HTTP,亦可面向 FTP 或 CoAP 。
据悉,开发者必须至少解析 robots.txt 的前 500 KB 内容。定义文件的大小,可确保每个连接的打开时间不会太长,从而减轻不必要的服务器压力。
另外,新的最大缓存时间被设置为 24 小时(或可用的缓存指令值),使得网站所有者能够随时灵活地更新他们的 robots.txt,且爬虫不会因此而让网站超载。
例如,在 HTTP 的情况下,可使用 Cache-Control 报头来确定缓存时间。而当先前可访问的 robots.txt 文件由于服务器故障而变得不可用时,则会在相当长的时间段内不再检索该网站。
这里需要点明的是,抓取工具可以用不同的方式去解析 robots.txt 文件中的说明,这可能会导致网站所有者的混淆。
为此,谷歌特地推出了 C++ 库,其支持 Googlebot 在 GitHub 上给出的解析和匹配系统,以供任何人访问。
根据 GitHub 上的发布说明,Google 希望开发者构建自己的解析器,以更好地反映 Google 的 robots.txt 文件的解析和匹配。