2017-02-19 43 views
5

Co potrzebne:Jak zrestartować Scrapy pająka

  1. początek gąsienicowy praca
  2. gąsienicowy zrobić
  3. odczekać 1 minutę
  4. początek gąsienicowy ponownie

próbuję to:

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) 

Ale się błąd:

twisted.internet.error.ReactorNotRestartable

pomóż mi zrobić to dobrze

Python 3.6
Scrapy 1.3.2
Linux

+0

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

Odpowiedz

2

Chyba znalazłem rozwiązanie:

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

Jak mogę wyprowadzać logi z tym? – Baks