但是,我不知道如何设计一个信号系统以在所有蜘蛛完成后停止反应堆
我的代码与以下示例非常相似:
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from scrapy import log
from testspiders.spiders.followall import FollowAllSpider
def setup_crawler(domain):
spider = FollowAllSpider(domain=domain)
crawler = Crawler(Settings())
crawler.configure()
crawler.crawl(spider)
crawler.start()
for domain in ['scrapinghub.com', 'insophia.com']:
setup_crawler(domain)
log.start()
reactor.run()
在所有爬虫停止后,反应堆仍在运行。如果我添加声明
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
对于 setup_crawler 函数,reactor 在第一个爬虫关闭时停止。
任何人都可以告诉我如何在所有爬虫完成后使反应堆停止吗?