2017-02-19 69 views
5

我需要什麼:如何重新啓動Scrapy蜘蛛

  1. 開始履帶
  2. 履帶完成任務
  3. 等待1分鐘
  4. 開始履帶再次

我試試這個:

from scrapy.crawler import CrawlerProcess 
from scrapy.utils.project import get_project_settings 
from time import sleep 

while True: 
    process = CrawlerProcess(get_project_settings()) 
    process.crawl('spider_name') 
    process.start() 
    sleep(60) 

但得到的錯誤:

twisted.internet.error.ReactorNotRestartable

請幫我做的是正確

的Python 3.6
Scrapy 1.3.2
的Linux

+0

看看http://stackoverflow.com/a/39955 395/2572383 –

回答

2

我想我找到了解決辦法:

from scrapy.utils.project import get_project_settings 
from scrapy.crawler import CrawlerRunner 
from twisted.internet import reactor 
from twisted.internet import task 


timeout = 60 


def run_spider(): 
    l.stop() 
    runner = CrawlerRunner(get_project_settings()) 
    d = runner.crawl('spider_name') 
    d.addBoth(lambda _: l.start(timeout, False)) 


l = task.LoopingCall(run_spider) 
l.start(timeout) 

reactor.run() 
+0

我該如何輸出日誌? – Baks