笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

宽爬行

发布者: 笨鸟自学网

Scrapy 默认值针对爬行特定站点进行了优化。这些站点通常由一个残缺的蜘蛛来处理,尽管这不是必需的或必需的(例如,有一些普通的蜘蛛来处理任何向它们抛出的给定站点)。

除了这种“集中的爬行”之外,还有另一种常见的爬行类型,它覆盖了大量(可能是无限的)域,并且只受时间或其他任意约束的限制,而不是在域被爬行到完成或没有更多的请求执行时停止。这些被称为“宽爬虫”,是搜索引擎使用的典型爬虫。

这些是一些常见的特性,通常在广泛的爬行中发现:

  • 它们对许多域(通常是无边界的)而不是一组特定的站点进行爬网

  • 它们不一定要对域进行爬网直至完成,因为这样做是不切实际的(或不可能的),而是按已爬网的时间或页数限制爬网。

  • 它们在逻辑上更简单(而不是具有许多提取规则的非常复杂的spider),因为数据通常在单独的阶段进行后处理。

  • 它们同时对多个域进行爬网,这使得它们可以通过不受任何特定站点约束的限制来实现更快的爬网速度(每个站点的爬行速度都很慢,以尊重礼貌,但许多站点是并行进行的)

如上所述,Scrapy的默认设置是针对重点爬行而不是广泛爬行而优化的。然而,由于其异步体系结构,Scrapy非常适合执行快速的广泛爬行。本页总结了在使用Scrapy进行宽范围爬行时需要记住的一些事情,以及为实现高效的宽范围爬行而调整Scrapy设置的具体建议。

使用权利 SCHEDULER_PRIORITY_QUEUE

Scrapy的默认调度程序优先级队列为 'scrapy.pqueues.ScrapyPriorityQueue' . 它在单域爬行时工作得最好。它不能很好地并行爬行许多不同的域

要应用建议的优先级队列,请使用:

SCHEDULER_PRIORITY_QUEUE = 'scrapy.pqueues.DownloaderAwarePriorityQueue' 

1234下一页

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-9-8 09:12 , Processed in 0.014913 second(s), 17 queries .

© 2001-2020

返回顶部