代码之家  ›  专栏  ›  技术社区  ›  sirrocco

太激进的机器人?

  •  4
  • sirrocco  · 技术社区  · 14 年前

    我正在做一个小机器人来爬行一些网站。 现在,我正在测试它,我尝试了两种设置:

    1. 大约每3秒有10个请求——IP被禁止了,所以我说——好吧,那太快了。

    2. 每3秒2个请求-IP在30分钟和1000多个链接后被禁止。

    还是太快了吗?我是说,我们谈论的是接近1000.000.000个链接,我应该得到这样的信息:“我们只是不想被爬行?”还是太快了?

    谢谢。

    编辑

    再次尝试-每5秒2个请求-30分钟和550个链接后,我被禁止。

    我会每2秒提出一个请求,但我怀疑会发生同样的情况。如果我能找到他,我想我得和管理员联系。

    3 回复  |  直到 14 年前
        1
  •  8
  •   z -    14 年前

    这里有一些 guidelines for web crawler politeness .

    通常,如果一个页面需要x秒的时间来下载,那么在重新下载之前至少等待10x-15x是很礼貌的。

    还要确保你也在纪念robots.txt。

        2
  •  0
  •   Chathuranga Chandrasekara    14 年前

    对。它太快了。

    通常爬虫每分钟保持1个请求的速率。

    老实说,这是一个低爬行率。但几分钟后,您可以有一个URL队列(一个长列表:)。您可以在这个列表上旋转,直到下一个特定的URL出现。

    如果您可以选择使用某种分布式体系结构(具有不同网络连接的多个节点,甚至是虚拟机或虚拟机),您可能会想到更高的速度。网格中的不同主机可以更有效地抓取内容。

        3
  •  0
  •   Pat    14 年前

    最好考虑的因素之一是网站所有者。正如其他人所提到的,robots.txt文件是网站执行此操作的标准。

    总之,robots.txt中有三种方法用于限制请求速度。

    爬行延迟:,一个整数,表示请求之间等待的秒数。

    请求速率:/,分子表示多少页,分母表示每秒多少页。即:1/3=每3秒1页。

    访问时间:,两个由连字符分隔的4位数字,表示您应该对其站点进行爬网的时间(基于hh:mm GMT)。

    考虑到这些建议/请求,您可能会发现有些站点的robots.txt中没有这些内容,您可以在其中控制这些内容。我建议保持一个合理的速率,至少每秒1页,同时也限制你每天消耗多少页。