Scrapy Version: 1.0.5Scrapy: Wie Spinne aus anderem Python-Skript läuft zweimal oder mehr
Ich habe lange gesucht, aber die meisten von Abhilfen funktionieren nicht in der aktuellen Version Scrapy.
Meine Spinne ist in jingdong_spider.py definiert, und die Schnittstelle (lernen es von Scrapy Documentation) Spinne laufen unter:
# interface
def search(keyword):
configure_logging({'LOG_FORMAT': '%(levelname)s: %(message)s'})
runner = CrawlerRunner()
d = runner.crawl(JingdongSpider,keyword)
d.addBoth(lambda _: reactor.stop())
reactor.run() # the script will block here until the crawling is finished
Dann in temp.py werde ich die search(keyword)
oben nennen Spinne laufen.
Nun das Problem: Ich rief Suche (Stichwort) einmal, und es funktionierte well.But ich es zweimal genannt, zum Beispiel
in temp.py
search('iphone')
search('ipad2')
berichtet:
Traceback (jüngste Aufforderung zuletzt): Datei "C: /Users/jiahao/Desktop/code/bbt_climb_plus/temp.py", Linie 7, in search ('ipad2') Datei „C: \ Benutzer \ Jiahao \ Desktop \ code \ bbt_climb_plus \ bbt_climb_plus \ Spinnen \ jingdong_spider.py " Linie 194, auf der Suche reactor.run() # das Skript hier blockiert, bis die Crawling Datei beendet ist " C: \ Python27 \ lib \ site-packages \ twisted \ internet \ base.py ", Zeile 1193, im Lauf self.startRunning (installSignalHandlers = installSignalHandlers) Datei" C: \ Python27 \ lib \ site-packages \ twisted \ internet \ base.py ", Zeile 1173, in StartRunning ReactorBase.startRunning (self) Datei "C: \ Python27 \ lib \ Site-Pakete \ twisted \ internet \ base.py", Zeile 684, in startRunning Raise error.ReactorNotRestartable() verdreht. internet.error.ReactorNotRestartable
Die erste Suche (Stichwort) ist gelungen, aber letzteres ist falsch gelaufen.
Können Sie mir helfen?
Obwohl es eine ungeeignete Problemumgehung ist, funktioniert es gut. Du hast meinen Tag gerettet! Ich hatte 50 Minuten Zeit, um mein Projekt arbeiten zu lassen. – alierdogan7