谷歌一直在用的 robots.txt 解析器,终于开源了

什么是 robots.txt ?


Robots Exclusion Protocol (REP,爬虫排除协议) 是一个标准,它允许网站所有者通过一个具有特定语法的简单文本文件(即:robots.txt),控制哪些 url 可以被爬虫程序访问,哪些不能访问。


下面是 Google 网站 robots.txt 的部分内容

从 https://www.google.com/robots.txt 能看到全部。


下面这是百度网站 robots.txt 的部分内容:

从 https://www.baidu.com/robots.txt 能看到全部。


谷歌开源 robots.txt 解析器


近日,Google 把自家一直在用的网络爬虫 robots.txt 解析器开源了。该仓库一度登上 GitHub 的每日趋势榜。


这个解析器用 C++ 编写实现(兼容 C++11)。Google 在生产环境中一直使用的,包括了上世纪 90 年代编写的代码。


仓库链接:https://github.com/google/robotstxt



谷歌为啥要开源 robots.txt 解析器?


robots.txt 是我们所知的互联网的基本组成部分之一,也是搜索引擎得以运行的原因。


因为在过去的 25 年里,REP 只是一个事实上的标准,不同的爬虫对 robots.txt 的解析不尽相同。


robots.txt 是一个「君子协议」,尽管声明某些 url 不能访问,但爬虫可以绕过。这就导致了混淆。


Google 此次开源的目的,是想通过自家使用的解析器来解决这个问题。