外媒VentureBeat报道称,谷歌希望开放其开发了数十年的robots.txt解析器,以推动REP成为搜索引擎爬虫的行业标准。
机器人排除协议(REP)是荷兰软件工程师Martijn Koster在1994年提出的标准,几乎已经成为网站不希望被搜索引擎收录的评论事实上的标准。
(截图via VentureBeat)
例如,Googlebot在索引网站时会扫描robots.txt文件,以确定应该忽略哪些部分。如果文件不在根目录下,搜索引擎默认会对整个网站的内容进行索引。
值得一提的是,这个文件不仅可以用来提供直接的爬虫索引,还可以用来填充一些关键词,实现“搜索引擎优化”(SEO)。另外,并不是所有的抓取工具都会严格遵循robots.txt文件。
比如几年前,互联网档案馆只选择支持其“Wayback Machine”存档工具,其他恶意抓取工具会有意忽略REP。
但是,需要指出的是,即使REP已经成为默认的实现标准,但它实际上从未成为真正的互联网标准,正如互联网工程任务组(IETF-一个非盈利的开放标签组织)所定义的那样。
为了推动这一转变,谷歌正在积极参与行动。这家搜索巨头表示,目前的REP可以得到“解释”,但它并不总是涵盖边缘化的案例。
作为补充,谷歌提出了更全面的“未定义场景”。比如在执行一个“扫描已知内容”的任务时,爬虫应该如何处理robots.txt文件出现“服务器无法访问故障”或者规则出现拼写错误?
谷歌在博客中写道:“对于网站所有者来说,这是一个非常具有挑战性的问题。由于模糊的事实标准,他们很难恰当地编写规则。”
我们希望帮助网站所有者和开发者在互联网上创造惊人的体验,而不必担心如何限制爬行工具。
于是Google与REP的原作者Martijn Koster,webmaster,以及其他搜索引擎合作,向IETF提交了一份关于如何在现代网络中应用REP的建议书。
该公司尚未公布草案的全貌,但它提供了一些指导方针。例如,任何基于URI的传输协议都可以应用于robots.txt,而不再局限于。
据悉,开发者必须解析robots.txt的至少前500 KB内容定义文件大小可以保证每个连接不会打开太久,从而减少不必要的服务器压力。
此外,新的最大缓存时间设置为24小时(或可用缓存指令值),网站所有者可以随时灵活更新自己的robots.txt,爬虫不会使网站过载。
例如,当一个文件由于服务器故障而变得不可用时,该网站将在很长一段时间内无法检索。
这里需要指出的是,爬虫可以用不同的方式解析robots.txt文件中的指令,这可能会导致网站所有者的困惑。
为此,Google专门推出了C++库,支持GitHub上Googlebot给出的解析匹配系统,任何人都可以访问。
根据GitHub上的发布说明,谷歌希望开发者构建自己的解析器,以更好地反映谷歌的robots.txt文件的解析和匹配。