查看原文
其他

谷歌一直在用的 robots.txt 解析器,终于开源了

技术最前线 技术最前线 2019-11-08

(给技术最前线加星标,每天看技术热点)

原创:技术最前线(id:TopITNews)

什么是 robots.txt ?


Robots Exclusion Protocol (REP,爬虫排除协议) 是一个标准,它允许网站所有者通过一个具有特定语法的简单文本文件(即:robots.txt),控制哪些 url 可以被爬虫程序访问,哪些不能访问。



下面是 Google 网站 robots.txt 的部分内容:

User-agent: *Disallow: /searchAllow: /search/aboutAllow: /search/staticAllow: /search/howsearchworksDisallow: /sdchDisallow: /groupsDisallow: /index.html?Disallow: /?

从 https://www.google.com/robots.txt 能看到全部。


下面这是百度网站 robots.txt 的部分内容:

User-agent: BaiduspiderDisallow: /baiduDisallow: /s?Disallow: /ulink?Disallow: /link?Disallow: /home/news/data/
User-agent: GooglebotDisallow: /baiduDisallow: /s?Disallow: /shifen/Disallow: /homepage/Disallow: /cproDisallow: /ulink?Disallow: /link?Disallow: /home/news/data/

从 https://www.baidu.com/robots.txt 能看到全部。


谷歌开源 robots.txt 解析器


近日,Google 把自家一直在用的网络爬虫 robots.txt 解析器开源了。该仓库一度登上 GitHub 的每日趋势榜。



这个解析器用 C++ 编写实现(兼容 C++11)。Google 在生产环境中一直使用的,包括了上世纪 90 年代编写的代码。


仓库链接:https://github.com/google/robotstxt



谷歌为啥要开源 robots.txt 解析器?


robots.txt 是我们所知的互联网的基本组成部分之一,也是搜索引擎得以运行的原因。


因为在过去的 25 年里,REP 只是一个事实上的标准,不同的爬虫对 robots.txt 的解析不尽相同。


robots.txt 是一个「君子协议」,尽管声明某些 url 不能访问,但爬虫可以绕过。这就导致了混淆。


Google 此次开源的目的,是想通过自家使用的解析器来解决这个问题。



推荐阅读

(点击标题可跳转阅读)

Google 正在实现自己的 curl

谷歌遭批评,承诺不削弱 Chrome 广告屏蔽功能


觉得这条资讯有帮助?请转发给更多人

关注 技术最前线 加星标看 IT 要闻

最新业界资讯,我在看❤️

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存