您现在的位置是:首页 >人工智能 > 2021-05-13 01:55:09 来源:

谷歌开源robots.txt解析器推动机器人排除协议成为官方标准

导读 谷歌希望将数十年前的机器人排除协议(REP)变成一个官方的互联网标准 - 并且它正在制作自己的robots txt解析器开源作为推送的一部分。 REP

谷歌希望将数十年前的机器人排除协议(REP)变成一个官方的互联网标准 - 并且它正在制作自己的robots.txt解析器开源作为推送的一部分。

REP是由荷兰软件工程师Martijn Koster于1994年提出的标准,几乎已经成为网站用来告诉自动爬虫不应该处理哪些网站部分的标准。例如,谷歌的Googlebot抓取工具会在索引网站时扫描robots.txt文件,以检查它应该忽略哪些部分的特殊说明 - 如果根目录中没有这样的文件,它会认为抓取它是好的(并且index)整个网站。但是,这些文件并不总是用于提供直接爬行指令,因为它们也可以填充某些关键字以改善搜索引擎优化,以及其他用例。

值得注意的是,并非所有抓取工具都尊重robots.txt文件,几年前互联网档案馆就会选择为其Wayback Machine归档工具提供支持,而其他更恶意的抓取工具也会选择忽略REP。

虽然REP通常被称为“标准”,但它实际上从未成为真正的互联网标准,正如互联网工程任务组(IETF)所定义的那样- 互联网的非营利性开放标准组织。而这正是谷歌正在推动改变的方式。它表示现在的REP可以解释,可能并不总是涵盖谷歌称之为“今天的角落案件”。

定义undefined

这一切都是为了更好地定义现有的“未定义场景” - 例如,当前一次扫描中已知内容时,爬虫如何处理将robots.txt文件呈现为不可访问的服务器故障情况?爬虫如何处理有拼写错误的规则呢?

“对于网站所有者来说,这是一个具有挑战性的问题,因为模糊的事实标准使得很难正确地编写规则,”谷歌在一篇博文中写道。“我们希望帮助网站所有者和开发者在互联网上创造出令人惊叹的体验,而不是担心如何控制抓取工具。”

谷歌称,它与REP的原作者Martijn Koster以及网站管理员和其他搜索引擎合作,向IETF提交了一份关于“如何在现代网络上使用REP”的提案。

该公司尚未全面公布该草案,但它确实对其关注的一些领域给出了一些指示:

任何基于URI的传输协议都可以使用robots.txt。例如,它不再局限于HTTP,也可以用于FTP或CoAP。

开发人员必须至少解析robots.txt的前500 kibibytes。定义最大文件大小可确保连接不会打开太长时间,从而减轻服务器上不必要的压力。

新的最大缓存时间为24小时或缓存指令值(如果可用),使网站所有者可以随时灵活地更新robots.txt,并且爬虫不会使用robots.txt请求超载网站。例如,在HTTP的情况下,可以使用Cache-Control报头来确定缓存时间。

该规范现在规定,当先前可访问的robots.txt文件由于服务器故障而变得不可访问时,不会在相当长的时间段内对已知的不允许页面进行爬网。

此处值得注意的是,抓取工具可以不同地解释robots.txt文件中包含的说明,这可能会导致网站所有者的混淆。这就是为什么谷歌还推出了C ++库,它支持Googlebot在GitHub上的解析和匹配系统,供任何人访问。根据GitHub的发布说明,Google希望开发人员构建自己的解析器,“更好地反映Google的robots.txt解析和匹配”。