【问题标题】:Does threading violate robots.txt? [closed]线程是否违反 robots.txt? [关闭]
【发布时间】:2011-06-06 17:50:28
【问题描述】:

我是抓取新手,最近我意识到线程可能是快速抓取网站的方法。不过,在我开始破解它之前,我认为确定这是否最终会让我受到限制可能是明智的。所以问题是,如果我重写我的程序以使用线程更快地抓取,这会违反大多数网站的 robots.txt 吗?

【问题讨论】:

    标签: multithreading web-scraping robots.txt web-crawler


    【解决方案1】:

    视情况而定:如果您的线程有自己单独的要抓取的 URL 队列,并且任何类型的队列之间没有同步,那么当两个(或更多)线程尝试抓取时,您最终可能会违反站点的 robots.txt快速连续的同一站点的 URL。当然a well designed crawler 不会那样做!

    非常“简单”的爬虫具有某种共享优先级队列,其中工作根据各种机器人排除协议进行排队,所有线程都会从该队列中提取要爬取的 URL。这种方法存在许多问题,尤其是在尝试扩展和抓取整个 World Wild Web 时。

    更高级的爬虫执行“预算”计算 (see the BEAST budget enforcement section),这使它们能够根据各种标准智能地安排爬取:垃圾邮件指标、robots.txt、覆盖率与新鲜度等。预算执行使多线程爬虫更容易爬得快,爬得有礼貌!

    【讨论】:

      【解决方案2】:

      它们是无关的。 robots.txt 说明是否允许您访问某些内容。它没有办法说“请一次只发送一个请求”。

      【讨论】:

      猜你喜欢
      • 2013-04-28
      • 1970-01-01
      • 2011-10-12
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      相关资源
      最近更新 更多