能否通过robots.txt控制爬行速度?

18
我们可以在robots.txt中指示机器人是否应该爬行我们的网站。另一方面,我们可以通过谷歌网站管理员控制爬行速度(即Google bot爬行网站的程度)。我想知道是否可以通过robots.txt限制机器人的爬行活动。我的意思是允许机器人爬行页面,但通过时间、页面或大小来限制它们的存在!
4个回答

21

在robots.txt文件中,有一个指令可以使用,它的名字叫做"Crawl-delay"。

Crawl-delay: 5

这意味着机器人应该每5秒钟爬取不超过一张网页。 但是据我所知,这个指令并没有得到官方支持。

此外,有些机器人根本不考虑robots.txt文件。 因此,即使您禁止访问某些页面,某些机器人仍然可能会爬取它们,当然不包括像Google这样的大型机器人。

例如,百度可能会忽略robots.txt,但这并不确定。

我没有官方来源来证实这些信息,您可以通过谷歌搜索。


2
@Goose是正确的,大多数网络爬虫都尊重Crawl-delay;Google的网络爬虫非常出色(真的,它就是那么好),可以自动确定最佳的爬行速率,因此在他们的情况下不需要这个设置。例如,Bing将在没有这个指令的情况下每月访问小型网站数百万次。我们在客户身上已经看到了很多次。 - Jeff Atwood
我使用谷歌的机器人测试工具:https://www.google.com/webmasters/tools/robots-testing-tool,并且它显示“Crawl-delay”被Googlebot忽略了。 - justyy

5
我没有找到相关的内容。Robots.txt是一个放置目录或文件的地方,您可以在其中选择要包含或排除的机器人。如果有一种方法,它还不是标准的。请记住,创建机器人的人选择是否尊重robots.txt,而不是所有机器人(“坏机器人”)都尊重此文件。

当前,如果有设置来减少爬行速度、网站停留时间等,则会基于机器人而不是标准化为robots.txt值。

更多信息:http://www.robotstxt.org/robotstxt.html


4

我知道这是一个非常老的问题,但我想补充一下,根据Google文档,这是官方答案:

通常情况下,您可以在Google站长工具帐户中调整爬行速率设置。

参考:https://developers.google.com/webmasters/control-crawl-index/docs/faq#h04

从站长工具内部,您可以按照以下步骤操作:

  1. 在搜索控制台主页上,单击要选择的网站。

  2. 单击齿轮图标,然后单击“网站设置”。

  3. 在“爬行速率”部分,选择所需选项,然后根据需要限制爬行速率。

新的爬行速率将在90天内有效。

参考:Google支持问题


0

不可以。 robots.txt 文件只能指定您不希望被索引的页面以及这些规则适用于哪些用户代理。您不能对该文件执行其他任何操作。

有些网站使用 AllowSitemap 指令,但根据官方网站,它们似乎不是有效的指令。即使一些爬虫程序可能会尊重它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接