谷歌推网页爬虫新标准,开源robots.txt解析器
鱼羊 发自 凹非寺
量子位 报道 | 公众号 QbitAI
对于接触过网络爬虫的人来说 robots.txt 绝不陌生,这一存放于网站根目录下的 ASCII 码文件标明了网站中哪些内容是可以抓取的,哪些内容又是禁止抓取的。
今年,robots.txt 就满 25 周岁了, 为了给这位互联网MVP庆祝生日,谷歌再度出手,开源 robots.txt 解析器,试图推助机器人排除协议(REP)正式成为互联网行业标准。
非标准的标准
机器人排除协议(Robots Exclusion Protocol)是荷兰软件工程师 Martijn Koster 在1994 提出的一项标准,其核心就是通过 robots.txt 这样一个简单的文本文件来控制爬虫机器人的行为。
REP 以其简单高效征服了互联网行业,有超过 5 亿个网站都在使用 robots.txt,可以说它已经成为了限制爬虫的事实标准,像 Googlebot 在抓取网页时就会浏览 robots.txt 来确保其不冒犯网站的特别声明。
然而,在为互联网行业服务了25年之后,REP 仍然只是一个非官方的标准。
这可带来了不少麻烦。
比如拼写错误。有很多人会忽视 robots.txt 规则中的冒号,而把 Disallow 拼成 Dis Allow 这种让爬虫抓瞎的情况也不是没有出现过。
此外,REP本身并没有涵盖所有的情况,比如出现服务器错误 500 时,爬虫是啥都可以抓还是啥也不能抓?
对于网站所有者来说,模糊的事实标准使得正确地书写规则变成了一件难事。这就够让人头疼的了,更别提并非所有的爬虫都尊重 robots.txt 这件事了。
来自谷歌的生日礼
REP 的尴尬,以搜索起家的谷歌看在眼里。于是在 REP 诞生25周年之际,谷歌大笔一挥,献上一份厚礼,宣布将与 REP 原作者 Martijn Koster、网站管理员和其他搜索引擎合作,向互联网工程任务组(IETF)提交规范化使用 REP 的草案,努力助其成为真正的官方标准!
为此,谷歌还开源了其用于抓取网络的工具之一—— robots.txt 解析器,来帮助开发人员构建自己的解析器,以期创建更多的通用格式,促进标准的完善。
此番开源的 C++ 库已存在20年之久,涵盖了谷歌生产历程中经历的许多有关 robots.txt 文件的案例。开源软件包中还包含了一个测试工具,可以帮助开发者们测试一些规则。
谷歌表示,他们希望帮助网站所有者和开发者们在互联网中创造出更多惊人的体验,而不是成天担心怎么去限制爬虫。
草案内容目前尚未全面公布,但大致会聚焦于以下几个方向:
任何基于 URI 的传输协议都可以使用 robots.txt。不局限于 HTTP,还包括 FTP 和 CoAP。
开发人员必须至少解析 robots.txt 的前 500 KiB。定义最大文件大小来确保打开文件不会花太长时间,以减轻服务器的压力。
新的最大缓存时间或缓存指令值为24小时,使网站所有者可以随时灵活地更新 robots.txt,并且爬虫不会使用 robots.txt 请求超载网站。
当先前可访问的 robots.txt 文件由于服务器故障而变得不可访问时,在长时间内不会对已知的不允许页面进行抓取。
网友评论
谷歌此番开源再次引起热议。
有网友表示,谷歌作为搜索行业的领军人物,大多数的搜索引擎都愿意紧随其后,他们愿做先锋统一行业标准是一件很有意义的事情。
还有网友对谷歌愿意开源 robots.txt 解析器感到既兴奋又惊奇,谷歌将来还会开源与搜索相关的其他模块吗?想想都有点刺激呀。
而 Martijn Koster 本人也说出了一些网友的心声:谷歌真是棒呆了!
传送门
开源地址:https://github.com/google/robotstxt
— 完 —
AI社群 | 与优秀的人交流
小程序 | 全类别AI学习教程
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
喜欢就点「在看」吧 !
谷歌推网页爬虫新标准,开源robots.txt解析器相关推荐
- 【谷歌推网页爬虫新标准,开源robots.txt解析器】
https://www.toutiao.com/a1638031116246019 [谷歌推网页爬虫新标准,开源robots.txt解析器] 对于接触过网络爬虫的人来说 robots.txt 绝不陌生 ...
- 【每天学习一点新知识】robots.txt详解
目录 什么是robots.txt? 如何查看robots.txt? robots.txt的内容 常见的搜索引擎的蜘蛛名称 如果创建并上传robots.txt文件? 如果网站信息都需要被抓取,是不是可以 ...
- 令人激动!谷歌推强化学习新框架「多巴胺」,基于TensorFlow,已开源丨附github...
郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 上周那个在DOTA2 TI8赛场上"装逼失败"的OpenAI Five,背后是强化学习的助推. 其实不仅仅是Open ...
- 开源软件 依赖_新的开源依赖项管理器在场
开源软件 依赖 当丹尼尔·菲佛 ( Daniel Pfeifer )在去年的Meeting C ++ 陷入僵局时,他说:"尝试完成以下句子:Python有Pip,Ruby有Gem,Dart有 ...
- Linux企业级项目实践之网络爬虫(29)——遵守robots.txt
Robots协议(也称为爬虫协议.机器人协议等)的全称是"网络爬虫排除标准"(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以 ...
- 网络爬虫排除协议robots.txt介绍及写法详解.
以上内容转载自:http://www.xgezhang.com/serach_engine_robots.html Robots协议的全称是"网络爬虫排除标准"(Robots Ex ...
- 关于网站根目录下面robots.txt文件的作用
谈到robots.txt文件,首先我们必须了解什么是robots协议,Robots协议(也称为爬虫协议.机器人协议等)的全称是"网络爬虫排除标准"(Robots Exclusion ...
- Robots.txt 协议详解及使用说明
一.Robots.txt协议 Robots协议,也称为爬虫协议.机器人协议等,其全称为"网络爬虫排除标准(Robots Exclusion Protocol)".网站通过Robot ...
- robots.txt
Robots协议(也称为爬虫协议.机器人协议等)的全称是"网络爬虫排除标准"(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以 ...
最新文章
- linux消息信号丢失,Linux信号丢失问题分析
- eclipse tomcat内存设置
- Java黑皮书课后题第6章:6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金。方法头如下所示。编写程序,显示下面表格
- jQuery的概念、用法、常见面试题详解
- HTTP知识普及系列:HTTP返回状态码
- 灰度值取值范围_第三章 灰度变换与空间滤波-(三)直方图之直方图均衡
- 【五级流水线CPU】—— 1. 初始框架搭建
- python画折线图-手把手教你Python yLab的绘制折线图的画法
- indesign教程,如何在对象周围环绕文本?
- Exchange 2007 邮箱设置
- 【datawhale-gitmodel】以波士顿房价数据进行数据分析和数据可视化
- 简单循迹小车实验心得_智能小车实验报告
- Windows操作系统装机必备软件,值得收藏!
- RS485/RS422接线图
- js 实现选择文件存放路径
- 这程序还厉害的。。。
- 喜讯 | 哈特公寓荣誉获最佳新锐公寓奖
- redis集群模式登陆
- python数据分析分析(8G)学习视频免费分享
- 计算广告笔记04-合约广告