Pour une raison quelconque, un script comme celui de la documentation officielle de Scrapy ne fonctionnait pas. (La cible d'exploration est un site japonais)
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()
Donc, comme l'exécution à partir de l'outil de ligne de commande (scrapy crawl hogehoge), j'ai modifié la description autour de Log et cela a fonctionné.
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()
La cause semble être que le journal ne reçoit pas le robot lorsqu'il est exécuté avec log.start (). Cependant, on ne sait pas pourquoi cela ne fonctionne pas sans robot.
scrapy/log.py
def start_from_crawler(crawler):
return start_from_settings(crawler.settings, crawler)
Recommended Posts