robots.txt中多个用户代理(Multiple User Agents in Robots.t

2019-07-19 07:29发布

在robots.txt文件我有以下几个部分

User-Agent: Bot1
Disallow: /A

User-Agent: Bot2
Disallow: /B

User-Agent: *
Disallow: /C

将声明Disallow:c是可见的Bot1&Bot2?

Answer 1:

TL; DR:否,Bot1和Bot2将愉快地抓取开始路径C

每个机器人永远只向符合最多的单个记录(块) 。

原规格

在最初的规范 ,它说:

如果该值是“*”,记录描述已不匹配任何其他记录的任何机械手的默认访问策略。

过期RFC草案

原来的规范,包括一些附加条件(如Allow )成为RFC草案,但从来没有被录取/发表。 在3.2.1用户代理线 ,它说:

机器人必须服从于/robots.txt的第一条记录包含user-agent行值中包含机器人作为一个子字符串的名称标记。 这个名字比较是不区分大小写。 如果没有这样的记录,则它应该服从与用户代理行的第一个记录以“*”的值,如果存在的话。 如果没有记录满足任一条件,或没有记录存在于一切,访问是无限的。

因此,它证实了原规范的解释。

实现

谷歌为例, 给出了一个例子 ,似乎遵循规范:

在robots.txt文件中的每个部分都是独立的,不建立在前面的章节。 例如:

 User-agent: * Disallow: /folder1/ User-Agent: Googlebot Disallow: /folder2/ 

在这个例子中仅网址匹配/folder2/将被禁止为Googlebot。



Answer 2:

如果机器人遵守robots.txt文件,是该语句将是可见的,所以他们将无法抓取/ C。

用户代理后的通配符(*)表示所有的用户代理。

但是记住不是所有的机器人服从的robots.txt



文章来源: Multiple User Agents in Robots.txt