2017-02-19 26 views
5

Ben gerekenler:scrapy örümcek yeniden nasıl

  1. başlangıç ​​paletli
  2. paletli iş bitmiş
  3. beklemeye
  4. başlangıç ​​paletli tekrar

Bunu deneyin 1 dakika:

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) 

Ama hata alıyorum:

twisted.internet.error.ReactorNotRestartable

bana bunu lütfen yardım sağ

Python 3.6
scrapy 1.3.2
Linux

+0

http://stackoverflow.com/a/39955 adresine bir göz atın. 395/2572383 –

cevap

2

ben çözüm buldum:

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

Günlükleri bununla nasıl çıkarabilirim? – Baks