东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

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

关注

评论

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

【Django | allauth】登录_注册_邮箱验证_密码邮箱重置

计算机魔术师

8月月更

列存数据仓库怎样做才能更高效

jiangxl

聚焦流支付的Zebec,支付场景正站在时代的十字路口

EOSdreamer111

mysql的存储引擎详解

浅羽技术

MySQL 存储引擎 MySQL InnoDB memory Store 8月月更

MQ 的原理以及持久化

浅羽技术

MQ 消息队列 Activemq active 8月月更

[JS入门到进阶] 手写裁剪图片的工具,并部署。一键裁剪掘金文章封面

HullQin

CSS JavaScript html 前端 8月月更

vivo前端智能化实践:机器学习在自动网页布局中的应用

vivo互联网技术

机器学习 前端 网页布局

【小程序项目开发-- 京东商城】uni-app之自定义搜索组件(中)-- 搜索建议

计算机魔术师

8月月更

Flomesh 发布 Pipy 0.50.0

Flomesh

流支付时代的Zebec,将打开Web3支付的大门?

鳄鱼视界

流支付时代的Zebec,将打开Web3支付的大门?

股市老人

Mysql安装教程

楠羽

#开源

长安链源码分析启动(6)

长安链

【小程序项目开发--京东商城】uni-app之自定义搜索组件(上)-- 组件UI

计算机魔术师

8月月更

悲观锁和乐观锁的区别以及实现方式

浅羽技术

乐观锁 悲观锁 8月月更

锁住它,快告诉我乐观锁与悲观锁的区别?

知识浅谈

8月月更

阿里云高庆瑞:如何快速搭建低成本高弹性的云上应用

阿里云弹性计算

应用 自动化运维 CloudOps 弹性伸缩

从项目经理过渡到ScrumMaster的三个技巧

ShineScrum捷行

Scrum 敏捷 ScrumMaster 项目经理

HMS Core基于地理位置请求广告,流量变现快人一步

HMS Core

广告sdk

BaaS助力区块链技术开启下一轮应用热潮

旺链科技

区块链 产业区块链 企业号九月金秋榜 BaaS平台

mysql 的索引分类 B + 和 hash 详解

浅羽技术

MySQL 索引 hash B+树 8月月更

数字藏品app开发:nft数字藏品是什么?怎么制作和出售?

开源直播系统源码

数字藏品 数字藏品软件开发 数字藏品源码出售 数字藏品开发 数字藏品系统

日拱算法:什么是“煎饼排序”?

掘金安东尼

算法 8月月更

前后端数据接口协作提效实践

百度Geek说

Java 数据 企业号九月金秋榜

【高并发】亿级流量场景下如何为HTTP接口限流?看完我懂了!!

冰河

并发编程 多线程 高并发 协程 异步编程

云原生(三十) | Kubernetes 篇之应用商店 -Helm 介绍

Lansonli

云原生 8月月更

前端高频面试题(二)(附答案)

helloworld1024fd

JavaScript 前端

数据仓库与数据中台最大的区别是什么?终于有人讲明白了

雨果

数据中台 数据仓库

流支付时代的Zebec,将打开Web3支付的大门?

西柚子

锁分类

TimeFriends

8月月更

京东云PostgreSQL在GIS场景的应用分享

京东科技开发者

postgresql 检索 jieba 京东云 信息检索

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