我对姜戈不熟悉。我正试着让我的残废蜘蛛穿过姜戈的视野。当我运行命令提示符时,我的零碎代码工作得很好。但当我试着在姜戈上运行它时失败了。
错误消息:信号只在主线程中工作。
Django视图中的我的代码(以下)
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.crawler import CrawlerProcess
from scrapy import log, signals
from Working.spiders.workSpider import WorkSpider
from scrapy.settings import Settings
from scrapy.utils.project import get_project_settings
spider = WorkSpider(domain='scrapinghub.com')
crawler = CrawlerProcess(Settings())
crawler.start()
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run()
请帮我解决这个问题。谢谢您
最佳答案
错误基本上是说您不在主线程中,所以信号不被处理。
从CrawlerProcess切换到CrawlerRunner为我解决了这个问题(我猜在CrawlerRunner中,您在主线程中)http://doc.scrapy.org/en/latest/topics/api.html#scrapy.crawler.CrawlerRunner
希望这对你有帮助
关于python - 信号仅在主线程中有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35914173/