有时,对于大型网站,暂停爬行并稍后恢复爬行是可取的。 Scrapy通过提供以下功能来支持此功能:
作业目录¶要启用持久性支持,只需定义 作业目录 通过 如何使用它¶要在启用持久性支持的情况下启动spider,请按如下方式运行: scrapy crawl somespider -s JOBDIR=crawls/somespider-1
然后,您可以随时安全地停止蜘蛛(通过按ctrl-c或发送信号),然后通过发出相同的命令恢复蜘蛛: scrapy crawl somespider -s JOBDIR=crawls/somespider-1
保持批之间的持久状态¶有时您需要在暂停/恢复批处理之间保持一些持久的蜘蛛状态。你可以使用 下面是一个使用spider状态的回调示例(为了简洁起见,省略了其他spider代码): def parse_item(self, response):
# parse item here
self.state['items_count'] = self.state.get('items_count', 0) + 1
持久性问题¶如果您想使用零碎的持久性支持,需要记住以下几点: 请求序列化¶为了让毅力发挥作用, 如果要记录无法序列化的请求,可以设置 |
Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )
GMT+8, 2024-11-21 17:53 , Processed in 0.034543 second(s), 17 queries .