2017-11-14 4 views
1

Ich habe Scrapy-Projekt (Scrapy 1.4, Python 3.x). Ich möchte meine Spinne erneut ausführen, wenn die Bedingung nicht erfüllt ist. Ich mache es in meiner spider_closed FunktionKann Scrapy Spinne nicht neu starten

def __init__(self): 
    dispatcher.connect(self.spider_closed, signals.spider_closed) 

def spider_closed(self): 
    if sth1 != sth2: 
     RESTART SPIDER 
    else: 
     FINISH SPIDER 

ich jede mögliche Methode versucht: lief Spinne o Befehl verwenden, führte Spinne in Bash-Skript, führte Spinne mit CrawlerProcess, etc ... aber jedes Mal, wenn ich bekam Fehler

ImportError: No module named ~my project name~ 

Kann jemand helfen?

Antwort

1
ImportError: No module named ~my project name~ 

bedeutet tut es den Pfad/Ordner Ihres Projektes finden, müssen Sie CD in diesen Projektordner vor Spinne mit bash oder was auch immer ausgeführt wird.

Hier ist, was ich tat, als ich im gleichen SZENARIO WAR

ich installiert ScrapyD und dann in der Nähe Methode, begann ich meine Schaber wieder scrapyD Zeitplan Endpunkt verwendet wird.

def spider_closed(self, spider): 

    resp = requests.post("http://localhost:6800/schedule.json", data={'project': "default", 'spider': self.name}) 
    logging.info(resp.text) 
Verwandte Themen