我必须从另一个 python 文件中调用爬虫,为此我使用以下代码。
def crawl_koovs():
spider = SomeSpider()
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()
在运行此程序时,我收到错误消息
exceptions.ValueError: signal only works in main thread
我能找到的唯一解决方法是使用
reactor.run(installSignalHandlers=False)
我不想使用它,因为我想多次调用此方法并希望在下一次调用之前停止反应器。我能做些什么来完成这项工作(也许强制爬虫在同一个“主”线程中启动)?