在robots.txt文件中,我有以下部分
User-Agent: Bot1
Disallow: /A
User-Agent: Bot2
Disallow: /B
User-Agent: *
Disallow: /C
语句CCD_ 1对Bot1&Bot2?
tl;dr:不,Bot1和Bot2将愉快地从C
开始爬行路径。
每个机器人最多只能遵守一个记录(块)。
原始规格
在最初的规范中,它说:
如果值为"*",则该记录将描述与任何其他记录都不匹配的任何robot的默认访问策略。
已过期的RFC草案
最初的规范,包括一些添加(如Allow
),成为RFC的草案,但从未被接受/发布。在3.2.1用户代理行中,它说:
robot必须遵守/robots.txt中的第一条记录,该记录包含一个用户代理行,该行的值包含robot的名称令牌作为子字符串。名称比较不区分大小写。如果不存在这样的记录,则它应遵守具有"*"值的用户代理行的第一条记录(如果存在)。如果没有满足任何一个条件的记录,或者根本不存在任何记录,则访问是不受限制的。
因此,它证实了对原始规范的解释
实施
例如,谷歌给出了一个似乎遵循规范的例子:
robots.txt文件中的每个部分都是独立的,并且不建立在以前的部分之上。例如:
User-agent: * Disallow: /folder1/ User-Agent: Googlebot Disallow: /folder2/
在这个例子中,只有与
/folder2/
匹配的URL才会被Googlebot禁止。
如果机器人遵守robots.txt文件,是的,该语句将可见,因此它们将无法爬网/c。
用户代理后面的通配符(*)表示所有用户代理。
但是,请记住,并非所有机器人都遵守robots.txt