谷歌正式开源内部解析器与代码库,旨在推进形成 robots.txt 解析标准

阅读数:7251 2019 年 7 月 2 日 18:34

谷歌正式开源内部解析器与代码库,旨在推进形成robots.txt解析标准

机器人排除协议(REP)是一种标准,使网站所有者能够通过具有特定语法的简单文本文件来控制自动客户端(即爬虫)可以访问哪些 URL。它是我们所知道的互联网基本构建模块之一,也是搜索引擎运行的基础。

25 年来,机器人排除协议 (REP) 几乎成为了一种约定俗成的标准,但这有时会带来一些负面的影响,不同的开发者实现 robots.txt 的解析总是略有不同,很容易导致混乱。

一方面,对于网站管理员来说,这意味着在某些特殊情况下的不确定性,比如当他们的文本编辑器在 robots.txt 文件中包含 BOM 字符时。另一方面,对于爬虫和工具开发人员来说,也带来了不确定性,例如,它们应该如何处理几百兆字节的 robots.txt 文件?

今天,谷歌宣布:将通过发布一款 Google 内部使用的解析器和一套 C++ 库来解决这个问题。

开源项目地址: https://github.com/google/robotstxt

据称,这个库已经有 20 年的历史了,它包含了一些九十年代编写的代码,也包含了很多关于网站管理员如何编写 robots.txt 文件和必须处理的案例的知识。

该 C++ 库只对产品代码做了轻微修改(即一些内部 header 和等同的符号),Googlebot(Google 的抓取工具)使用它来根据 robots.txt 文件中网站管理员提供的规则确定可以访问的网址,可帮助开发人员构建更好地反映 Google robots.txt 解析和匹配的工具。

库中包含了一个二进制文件,用于针对用户代理和 URL 测试本地 robots.txt。运行包含的二进制文件需要:

  • 兼容的平台(例如 Windows,Mac OS X,Linux 等)。大多数平台都完全支持。
  • 兼容的 C ++ 编译器,至少支持 C ++ 11。大多数主要编译器都受到支持。
  • Git 用于与源代码存储库交互。如要安装 Git,请参阅 GitHub 上的  Set Up Git 指南 。
  • 虽然用户可以自由使用自己的构建系统,但本指南中的大多数文档都假设用户使用的是  Bazel 。要下载和安装 Bazel(及其任何依赖项),请参阅  Bazel 安装指南

此外,谷歌还在开源包中添加了一个测试工具,以帮助开发者测试一些规则。使用非常简单:

复制代码
robots_main <robots.txt content> <user_agent> <url>

评论

发布