[PYTHON] Skript beim Ausführen von Scrapy aus dem Skript

Run Scrapy from a script

Aus irgendeinem Grund funktionierte ein Skript wie das in Scrapys offizieller Dokumentation nicht. (Crawling-Ziel ist die japanische Site)

spider = FollowAllSpider(domain='scrapinghub.com')
settings = get_project_settings()
crawler = Crawler(settings)
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run()

Also, wie die Ausführung über das Kommandozeilen-Tool (Scrapy Crawl Hogehoge), habe ich die Beschreibung um Log geändert und es hat funktioniert.

spider = FollowAllSpider(domain='scrapinghub.com')
settings = get_project_settings()
crawler = Crawler(settings)
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
log.start_from_crawler(crawler)
crawler.configure()
crawler.crawl(spider)
crawler.start()
reactor.run()

Die Ursache scheint zu sein, dass das Protokoll keinen Crawler erhält, wenn es mit log.start () ausgeführt wird. Es ist jedoch nicht bekannt, warum es ohne Crawler nicht funktioniert.

scrapy/log.py


def start_from_crawler(crawler):
    return start_from_settings(crawler.settings, crawler)

Recommended Posts

Skript beim Ausführen von Scrapy aus dem Skript
Führen Sie das Illustrator-Skript von Python aus
Xpath-Zusammenfassung beim Extrahieren von Daten von einer Website mit Python Scrapy
Führen Sie das Python-Skript aus der Batchdatei aus
Laden Sie Bilder von "Irasutoya" mit Scrapy herunter
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python