谷歌希望将已有数十年历史的拒绝蜘蛛协议(Robots Exclusion Protocol,简称REP)转变为官方互联网标准,并将自己的robots.txt解析器作为推广的一部分进行开源。
REP是1994年荷兰软件工程师Martijn Koster提出的一个标准,现在几乎变成了网站用来告诉自动爬虫程序哪些部分不应该被处理的标准。例如,谷歌的Googlebot爬虫器在为网站编制索引时扫描robots.txt文件,以查看特殊说明,了解它应该忽略哪些部分。如果根目录中没有这样的文件,它将假定可以对整个网站进行爬虫(并编制索引)。不过,这些文件并不总是用于提供直接的爬虫指令,因为它们还可以填充某些关键字,以改进搜索引擎优化,以及其他用例。
值得注意的是,并非所有爬虫都遵循robots.txt文件,比如几年前Internet Archive选择为其Wayback Machine归档工具提供支持,而其他更恶意的爬虫也选择忽略REP。
正如Internet Engineering Task Force(IETF)所定义的那样,尽管REP通常被称为“标准”,但它实际上从未成为真正的互联网标准。IETF是互联网非营利开放标准组织。而这正是谷歌正在努力改变的。它说,REP是开放的解释,可能并不总是涵盖所有的情况。
这一切都是为了更好地定义现有的“未定义场景”——例如,当先前的扫描已经知道robots.txt文件的内容时,爬虫程序应该如何处理使其无法访问的服务器故障场景?爬虫应该如何对待一个有拼写错误的规则?
谷歌在一篇博客文章中写道:“对于网站所有者来说,这是一个具有挑战性的问题,因为事实上模棱两可的标准使得很难正确地编写规则。我们希望帮助网站所有者和开发人员在互联网上创造惊人的体验,而不是担心如何控制爬虫。”
谷歌表示,它已与REP的原始作者Martijn Koster以及网站管理员和其他搜索引擎合作,向IETF提交一份提案,内容包括“如何在现代网络中使用REP”。
该公司还没有完全公布草案,但对其关注的一些领域给出了一些指示:
任何基于URI的传输协议都可以使用robots.txt。例如,它不再局限于HTTP,也可以用于FTP或CoAP。
开发人员必须至少解析robots.txt的前500千字节。定义最大文件大小可以确保连接不会打开太长时间,从而减轻服务器上不必要的压力。
新的最长缓存时间为24小时或缓存指令值(如果可用),使网站所有者可以随时更新robots.txt,而爬虫程序不会使网站过载robots.txt请求。例如,对于HTTP,可以使用缓存控制头来确定缓存时间。
规范现在规定,当以前可访问的robots.txt文件由于服务器故障而变得不可访问时,已知的不允许页面不会在相当长的一段时间内进行爬虫。
值得注意的是,爬虫可以不同的方式解释robots.txt文件中包含的指令,这会导致网站所有者感到困惑。这就是为什么谷歌还把Googlebot的解析和匹配系统的C++库放在GitHub上供所有人访问。根据Github发布的说明,谷歌希望开发人员打造自己的解析器,从而“更好地反映谷歌的robots.txt解析和匹配”。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。