python-3.x - 运行多个蜘蛛时反应堆无法重新启动
问题描述
我在连续运行多个蜘蛛时遇到了一些麻烦,我找不到解决我问题的答案。
在我的项目中,我有多个蜘蛛,其中一个可以自己工作,但是以下几个取决于第一个完成的程序才能正常工作。
我怎样才能让一只蜘蛛追着另一只蜘蛛跑?我试着做这样的事情:
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
import excelMerger
process = CrawlerProcess(get_project_settings())
process.crawl('urlClothes_spider')
process.start()
process.crawl('clothes_spider')
process.start()
process.crawl('finalClothes_spider')
process.start()
但是在第一个完成后,我得到了一个反应堆不可启动的错误。
我也试过把.crawl
一个一个接一个,但似乎没有遵循顺序,所以程序不起作用,像这样
process.crawl('urlClothes_spider')
process.crawl('clothes_spider')
process.crawl('finalClothes_spider')
关于如何解决这个问题的任何想法?
解决方案
您需要遵循文档中的顺序执行示例:
from twisted.internet import reactor, defer
from scrapy.crawler import CrawlerRunner
from scrapy.utils.project import get_project_settings
runner = CrawlerRunner(get_project_settings())
@defer.inlineCallbacks
def crawl():
yield runner.crawl('urlClothes_spider')
yield runner.crawl('clothes_spider')
yield runner.crawl('finalClothes_spider')
reactor.stop()
crawl()
reactor.run()
推荐阅读
- linux - 如何使用 JMeter 在 Linux (Ubuntu) 上执行 IP 地址欺骗?(JMeter 未创建绑定 IP)
- python - Pandas:使用 groupby 重新创建 pivot_tables
- json - 在 Swift 中使用 JSONDecoder 处理错误
- django - Django 模型动态选择迁移
- css - Reactjs - 使用滑入滑出动画将一个 div 转换到另一个顶部
- redis - 如何通过 CloudFormation 模板将 Redis AUTH 令牌添加到 ElastiCache?
- java - 从 ArrayList of Sets 中删除重复项 | 数组列表
> 温度 - c - 在此系统中不断收到此错误“链接器命令失败,退出代码为 1”
- angular - 如何在角度 7 中将订阅结果从一种方法返回到另一种方法?
- java - 只有经过 5 秒才能再次调用方法