【问题标题】:Is it possible to control the crawl speed by robots.txt?是否可以通过 robots.txt 控制爬取速度?
【发布时间】:2011-12-08 21:24:14
【问题描述】:

我们可以在 robots.txt 中告诉机器人抓取或不抓取我们的网站。另一方面,我们可以控制 Google Webmasters 中的抓取速度(Google bot 抓取网站的速度)。我想知道是否可以通过 robots.txt 限制爬虫活动

我的意思是接受机器人来抓取页面,但通过时间、页面或大小来限制它们的存在!

【问题讨论】:

    标签: search-engine robots.txt google-crawlers


    【解决方案1】:

    您可以在 robots.txt 中使用一个指令,它是“Crawl-delay”。

    Crawl-delay: 5

    意味着机器人每 5 秒抓取的页面不应超过一页。 但据我所知,robots.txt 并未正式支持此指令。

    还有一些机器人根本不接受 count robots.txt 文件。 因此,即使您禁止访问某些页面,它们仍然可能被某些机器人抓取,当然不是像 Google 这样最大的机器人。

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

    我没有这个信息的官方来源,所以你可以谷歌一下。

    【讨论】:

    • 上次我听说,Googlebot 忽略了抓取延迟,所以这实际上对 Google 没有帮助。不过,将适用于其他一些机器人。如果没有关于它适用于哪些机器人的信息,这个答案是相当不完整的。
    • 更多关于Crawl-Delay的信息请看这个SO问题:stackoverflow.com/questions/17377835/…
    • 抓取延迟不是标准的一部分,但一些机器人尊重它:en.wikipedia.org/wiki/…
    • 据此,Yahoo!、Bing 和 Yandex 都尊重它。无论如何,Bing 是最重的爬虫,所以这是个好消息。 yoast.com/ultimate-guide-robots-txt/#crawl-delay
    • @Goose 是正确的,大多数爬虫都尊重Crawl-delay; Google 的爬虫非常好(真的,非常好),它会自动确定最佳爬取率,因此在他们的情况下不需要此设置。例如,如果没有此指令,必应每月会访问数百万次小型网站。我们在客户那里见过很多次。
    【解决方案2】:

    我知道这是一个很老的问题,但我想根据谷歌文档补充一下,这里是官方答案:

    您通常可以在 Google 中调整抓取速度设置 网站管理员工具帐户。

    每个人:https://developers.google.com/webmasters/control-crawl-index/docs/faq#h04

    在网站管理员工具中,您可以按照以下步骤操作:

    1. 在 Search Console 首页上,点击所需的网站。

    2. 单击齿轮图标 ,然后单击站点设置。

    3. 在“抓取速度”部分,选择所需的选项,然后根据需要限制抓取速度。

    新的抓取速度有效期为 90 天。

    参考:google support question

    【讨论】:

    • 我只是设置了抓取速度,它说它的有效期是一个月,而不是 90 天
    【解决方案3】:

    不是我发现的。 Robots.txt 是放置您希望机器人包含或排除的目录或文件的地方。如果有办法,它还不是标准的。请记住,创建机器人的人选择是否尊重 robots.txt,并非所有机器人(“坏机器人”)都尊重此文件。

    目前,如果有设置来降低抓取速度、站点停留时间等。它将是逐个机器人的基础,而不是标准化为 robots.txt 值。

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

    【讨论】:

    • 这个答案来自 2011 年。请考虑到这一点。 @Googlebot,合理审查并接受更好的答案。
    • 这仍然是正确的。有很多不尊重 robots.txt 的机器人,我们在 nginx 上实施了自定义速率限制,以减慢已知机器人的速度。
    【解决方案4】:

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

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

    【讨论】:

    • 我怀疑这在 2011 年曾经是正确的,但 AllowSitemap 指令在 2021 年都有效,更新的 Crawl-delay 也是如此(见较早的答案)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    相关资源
    最近更新 更多