免费注册!6月19-20日,「亚马逊云科技中国峰会」重磅来袭! 了解详情
写点什么

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

  • 2019-07-02
  • 本文字数:834 字

    阅读完需:约 3 分钟

谷歌正式开源内部解析器与代码库,旨在推进形成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>
复制代码


2019-07-02 18:347962
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 291.5 次阅读, 收获喜欢 1305 次。

关注

评论

发布
暂无评论
发现更多内容

终于玩明白Golang数据可视化了!

Jackpop

HOW

Nydia

Flutter 详解 Timer & ACETimerButton 自定义计时器按钮

阿策小和尚

28天写作 0 基础学习 Flutter 内容合集 签约计划第二季 12月日更

实用机器学习笔记七:数据变换

打工人!

机器学习 算法 学习笔记 12月日更

程序员有哪些提升幸福感的专属神器?

Jackpop

老生常谈--什么是装箱什么是拆箱

喵叔

28天写作 12月日更

业务代码如何才能不再写出大串的if/else?

JavaEdge

12月日更

[vue3组件库]0到1参与7k Star大型开源项目成为贡献者🎃

速冻鱼

开源 大前端 签约计划第二季 12月日更

TCP的慢启动、拥塞避免、重传、快恢复乱七八糟总是记不清?11个连环问让你一次性打通任督二脉

华为云开发者联盟

TCP 报文 TCP协议 ACK RTT

架构实战营模块1课后作业

swallowluo

架构实战营

【LeetCode】电话号码的字母组合Java题解

Albert

算法 LeetCode 12月日更

入驻快讯|欢迎 OpenI 启智社区正式入驻 InfoQ 写作平台!

InfoQ写作社区官方

入驻快讯

Linux系统学习《Linux一学就会》:LVM管理和ssm存储管理器使用

侠盗安全

Linux linux运维 运维工程师 云计算架构师

团队基建系列 - 组织知识传承 2

搬砖的周狮傅

团队协作 团队成长

88邮箱-从入职到离职

D

Flutter中如何添加垂直分隔线【Flutter 专题 18】

坚果

flutter 28天写作 12月日更

python scrapy 管道学习,并拿在行练手爬虫项目

梦想橡皮擦

12月日更

终于购买了自己的第一个硬件钱包Ledger Nano(8/28)

赵新龙

28天写作

计划会议想开好,这两件事必须清楚

华为云开发者联盟

计划 敏捷 团队 计划会议 故事分解

整理的三重境界

Ian哥

28天写作 超级整理术 整理 整理的三重境界

学习宫本茂的创意

Justin

方法论 创意 28天写作

初识架构设计

皓月

架构实战营 #架构实战营 「架构实战营」

硬核榜单 | 拍乐云荣登福布斯中国「企业科技50强」

拍乐云Pano

音视频 拍乐云 福布斯 科技企业

支撑1300+矿井监控,华为云数据库助力打造智能矿山

华为云开发者联盟

数据库 监控 华为云 数据复制服务 煤矿

当我们在谈‘数据标准’的时候,我们到底在谈什么?

圣迪

数据 主数据 数据标准 参考数据

Prometheus Exporter (二十)Lustre Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 Lustre

推开GraphQL大门

梁龙先森

签约计划第二季

说了半天跨平台,今儿咱就来跨跨!(中)

为自己带盐

Docker jenkins 28天写作 签约计划第二季 12月日更

一款好用的Maven插件 - Maven Helper

恒生LIGHT云社区

Java maven

使用 HTML、CSS、JS 和 API 制作一个很棒的天气 Web 应用程序

海拥(haiyong.site)

JavaScript API 28天写作 签约计划第二季 12月日更

Flutter开发:项目加载本地html文件的步骤

三掌柜

28天写作 21天挑战 12月日更 12月

谷歌正式开源内部解析器与代码库,旨在推进形成robots.txt解析标准_开源_陈思_InfoQ精选文章