【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

谷歌正式开源内部解析器与代码库,旨在推进形成 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:347788
用户头像
陈思 InfoQ编辑

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

关注

评论

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

PreparedStatement实践和批处理实践

FunTester

端侧AI的“春风化雨手”,翻开中国科技下一页

脑极体

AI

网易首款鸿蒙原生游戏《倩女幽魂》手游完成开发,商业化版本已就绪

新消费日报

C 语言文件读取全指南:打开、读取、逐行输出

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

加密眼界

可编程线性霍尔传感器 IC

智趣匠

文心大模型融入荣耀MagicOS!打造大模型“端云协同”创新样板

爱编程的喵喵

在线文档软件哪个好?5个好用的协同文档app推荐!

彭宏豪95

团队协作 在线文档 在线白板 在线协同文档 效率软件

软件测试/测试开发全日制|Pytest结合yaml实现数据驱动

霍格沃兹测试开发学社

🛠 开源即时通讯(IM)项目OpenIM源码部署指南

Geek_1ef48b

吃人血馒头 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

EOSdreamer111

数字化转型究竟是什么意思?

高端章鱼哥

数字化

坎昆升级在即,ZKFair 已开启 ZKF 质押

股市老人

Programming Abstractions in C阅读笔记:p242-p245

codists

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

石头财经

Go与C语言的互操作,import “C“的实例

百度搜索:蓝易云

Go 云计算 Linux C语言 云服务器

关于AI PC,英特尔CEO帕特·基辛格说了三个法则

E科讯

如何利用 NFTScan Portfolio 功能分析钱包 NFT 持仓

NFT Research

NFT NFT\ NFTScan

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

大瞿科技

2023 IoTDB Summit:天谋科技高级开发工程师张金瑞《筑其形:如何轻松搞定 IoTDB 数据建模》

Apache IoTDB

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

西柚子

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

股市老人

吃惯人血馒头的 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

长安区块链

🛠 开源即时通讯(IM)项目OpenIM源码部署指南

Geek_1ef48b

使用JMeter安装RabbitMQ测试插件的步骤

百度搜索:蓝易云

云计算 Linux 运维 RabbitMQ Jmeter

docker rabbitmq-清空queue队列数据

百度搜索:蓝易云

云计算 Linux 运维 RabbitMQ 云服务器

Kubernetes Pod配置:从基础到高级实战技巧

互联网工科生

Kubernetes

软件测试/测试开发全日制|Pytest结合Excel实现数据驱动

霍格沃兹测试开发学社

从像素到洞见:图像分类技术的全方位解读

不在线第一只蜗牛

机器学习 深度学习 图像 项目开发

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

BlockChain先知

2024-01-10:用go语言,给你一个下标从 0 开始的二维整数数组 pairs 其中 pairs[i] = [starti, endi] 如果 pairs 的一个重新排列 满足对每一个下标 i

福大大架构师每日一题

福大大架构师每日一题

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