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