robots.txt机器人排斥标准

robots.txt定义

机器人排除标准,也被称为机器人排除协议或robots.txt的协议,是一项公约,以防止合作网络抓取工具和其他网络机器人的访问全部或部分的网站,否则是公开可见的。
 

  • 机器人通常用于搜索引擎网站进行分类和归档,或由网络管理员进行校对的源代码。标准不同,但可以在与一起使用的Sitemaps,一个机器人列入标准的网站。

robots.txt历史

  • 为“robots.txt”的发明,是因为Martijn科斯特,当工作 WebCrawler在1994 年。为“robots.txt”,然后推广与AltaVista的来临,和其他流行的搜索引擎,在接下来的几年。

有关robots.txt标准

  • 如果一个网站的所有者希望网络机器人发出指令,他们必须放置一个文本文件名​​为:robots.txt 的网站层次结构的根(如:https://www.yiyada.com/robots.txt )。这个文本文件应该包含在一个特定的格式说明(见下面的例子)。

  • 按照指示的机器人,试图获取这个文件,并宣读前从网站上获取的任何其他文件的说明 。如果这个文件不存在网络机器人承担,网站所有者愿意提供没有具体说明。

  • 在网站上的robots.txt文件将作为一个请求,指定机器人忽略在其搜索指定的文件或目录的功能。这可能是,例如,走出了一条从搜索引擎结果的隐私的偏好,或信仰,选定目录的内容可能误导或不相关的整个网站的分类,或一个愿望应用程序只对特定的数据操作。

  • 对于具有多个子网站,每个子域必须有自己的robots.txt文件。如果yiyada.com一个robots.txt文件,但 a.yiyada.com没有将申请为 yiyada.com的规则将不适用 a.yiyada.com 。

缺点

  • 该 协议是纯粹的咨询。它依赖于网络机器人的合作,使标记地盘面积与robots.txt的边界并不能保证隐私。一些网站管理员试图使用的机器人的文件,以使 一个网站的无形世界各地的私处,但必然是公开的文件,其内容是很容易被人检查一个Web浏览器, 因此,私处的位置是显而易见的外地人,这是一个不安全的战略。

  • 指定不应该访问的部分的信息是在网站的顶层目录的robots.txt文件中指定。robots.txt的模式匹配的子串比较简单,所以应小心,以确保模式匹配的目录最后的“/”字符追加,否则,所有的文件名 ​​称与该子串的开始,而不仅仅是那些在预期的目录。


robots.txt的例子

一、这个例子允许所有的机器人访问的所有文件,因为通配符*指定所有机器人:

User-agent: *
Disallow:


二、这个例子保留所有机器人,不允许任何机器人访问网站任何目录:

User-agent: *
Disallow: /


三、接下来是一个例子,告诉所有的爬虫不要进入网站目录 :

User-agent: *
Disallow: /c/
Disallow: /images/
Disallow: /lang/
Disallow: /api/


四、这个例子, 讲述了一个特定的履带没有进入一个特定的目录 :

#替换机器人的实际用户代理“BadBot”

User-agent: BadBot # replace the 'BadBot' with the actual user-agent of the bot
Disallow: /abcd/


五、这个例子,告诉所有爬虫不要进入一个特定的文件 :

User-agent: *
Disallow: /index.php?


请注意,在指定目录中的所有其他文件将被处理。


非标准扩展

第二阶段延迟指令

几个主要的爬虫支持抓取延迟参数,设置连续请求之间等待的秒数,在同一台服务器:

User-agent: *
Crawl-delay: 10

允许指令

一些主要的爬虫支持一个允许指令,它可以抵消,下面的禁止指示。这是非常有用的,当一个不允许一个完整的目录,但仍希望该目录中的一些HTML文件抓取和索引。

  • 尽管标准实施的第一个匹配的robots.txt模式总是胜,在允许指令路径相同或多个字符的模式匹配不允许图案战胜Google的实现不同冰使用允许或不允许的指令,这是最具体的。


为了兼容所有机器人,如果要允许否则不允许目录内的单个文件,它是必要的地方允许指令第一,例如,其次是不允许的:

  • Allow: /no1/file.html
  • Disallow: /no1/
  • 这个例子将禁止任何在/no1/ /no1/file.html除外,因为后者会先被匹配。不过,在谷歌的情况下,为了并不重要。


有些爬虫支持一个地图的指示,允许多个 Sitemap ,在相同的robots.txt的形式:

Sitemap: https://www.yiyada.com/sitemap.xml