暂停和恢复自包含的scrapy脚本

时间:2016-11-01 13:11:21

标签: python web web-scraping scrapy web-crawler

我正在运行一个自包含的Scrapy蜘蛛,它位于一个<h1>Some Heading 1</h1> <h2>Some Heading 2</h2> <h3>Some Heading 3</h3>文件中。如果服务器出现故障/断电/脚本可能出现故障的任何其他原因,是否有一种优雅的方法可以确保我能够在恢复后恢复运行?

也许类似于内置的JOBDIR设置?

3 个答案:

答案 0 :(得分:1)

整个documentation page涵盖了这个问题:

  

要启动支持持久性支持的蜘蛛,请运行它   这样:

     

scrapy crawl somespider -s JOBDIR=crawls/somespider-1

     

然后,您可以随时安全地停止蜘蛛(按Ctrl-C   或发送信号),然后通过发出相同的命令恢复它:

     

scrapy crawl somespider -s JOBDIR=crawls/somespider-1

答案 1 :(得分:1)

如果你有一个自包含的脚本,你仍然可以使用JOBDIR选项,例如您可以在custom_settings属性中设置值:

class MySpider(scrapy.Spider):
    custom_settings = {
        'JOBDIR': './job',
    }
    #...

或者,您可以在创建CrawlerProcess时设置此选项(如果这是您在脚本中运行蜘蛛的用途):

process = CrawlerProcess({'JOBDIR': './job'})
process.crawl(MySpider)
process.start()

答案 2 :(得分:0)

您可以使用supervisor

[program:foo]
command=~/script_path/script.py