robots.txt 中的矛盾规则
Contradictory rules in robots.txt
我正在尝试抓取一个网站,这两条规则在 robots.txt
中似乎是矛盾的
User-agent: *
Disallow: *
Allow: /
Allow: /
是否意味着我可以抓取整个网站,或者只是根?好像意味着我可以抓取整个网站那么这与之前的规则直接矛盾。
如果您正在关注 original robots.txt standard:
- 禁止行中的
*
将被视为文字而非通配符。该行将不允许 URL 以星号开头的路径。所有 URL 路径都以 /
开头,因此该规则不允许任何内容。
Allow
规则不在规范中,因此该行将被忽略。
- 允许抓取任何未明确禁止的内容。
结论:您可以抓取网站。
Google 和其他一些爬虫支持通配符和允许。如果您正在关注 Google 对 robots.txt 的扩展,这里是 how Google would interpret this robots.txt:
Allow: /
和 Disallow: *
都匹配站点上的任何特定路径。
- 在发生此类冲突的情况下,更具体(即更长)的规则获胜。
/
和 *
都是一个字符,因此没有一个被认为比另一个更具体。
- 在特异性相同的情况下,限制最少的规则获胜。
Allow
被认为比 Disallow
限制更少。
结论:您可以抓取网站。
我正在尝试抓取一个网站,这两条规则在 robots.txt
中似乎是矛盾的User-agent: *
Disallow: *
Allow: /
Allow: /
是否意味着我可以抓取整个网站,或者只是根?好像意味着我可以抓取整个网站那么这与之前的规则直接矛盾。
如果您正在关注 original robots.txt standard:
- 禁止行中的
*
将被视为文字而非通配符。该行将不允许 URL 以星号开头的路径。所有 URL 路径都以/
开头,因此该规则不允许任何内容。 Allow
规则不在规范中,因此该行将被忽略。- 允许抓取任何未明确禁止的内容。
结论:您可以抓取网站。
Google 和其他一些爬虫支持通配符和允许。如果您正在关注 Google 对 robots.txt 的扩展,这里是 how Google would interpret this robots.txt:
Allow: /
和Disallow: *
都匹配站点上的任何特定路径。- 在发生此类冲突的情况下,更具体(即更长)的规则获胜。
/
和*
都是一个字符,因此没有一个被认为比另一个更具体。 - 在特异性相同的情况下,限制最少的规则获胜。
Allow
被认为比Disallow
限制更少。
结论:您可以抓取网站。