如何在独立脚本模式下利用JOBDIR重启故障的Scrapy爬虫?
Scrapy爬虫从故障断点重启的方法
你已经配置了JOBDIR参数,重启步骤非常直接:
- 直接重新运行你原来的启动脚本即可:
if __name__ == "__main__": from scrapy.crawler import CrawlerProcess from scrapy.utils.project import get_project_settings s = get_project_settings() process = CrawlerProcess(s) process.crawl(MySpider) process.start()
原理说明
JOBDIR: crawler_1这个配置的核心作用是让Scrapy把爬虫的运行状态(包括已完成的请求、待处理的请求队列、爬取进度数据等)持久化到crawler_1目录中。当爬虫故障中断后,只要这个目录没有被删除或篡改,再次运行启动脚本时,Scrapy会自动读取该目录下的状态文件,从上次中断的断点处继续执行爬取任务。
注意事项
- 必须保证
crawler_1目录及其下的状态文件完整,不要手动删除或修改其中的内容 - 重启前不要修改爬虫的核心逻辑(比如Item定义、请求生成规则等),否则可能导致状态不兼容,引发异常
- 如果需要从头开始爬取,只需删除
crawler_1目录后再运行脚本即可
内容的提问来源于stack exchange,提问作者asfand hikmat
相关产品推荐
相关产品推荐

