[PYTHON] Script lors de l'exécution de Scrapy à partir d'un script

Run Scrapy from a script

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

Script lors de l'exécution de Scrapy à partir d'un script
Exécutez le script illustrator à partir de python
Résumé Xpath lors de l'extraction de données d'un site Web avec Python Scrapy
Exécuter le script Python à partir du fichier de commandes
Télécharger des images de «Irasutoya» à l'aide de Scrapy
Précautions lors de l'utilisation de phantomjs de python