python - 使用 CrawlerProcess 顺序运行两个蜘蛛时出现 ReactorNotRestartable 错误
问题描述
我正在尝试顺序运行两个蜘蛛,这是我的模块的结构
class tmallSpider(scrapy.Spider):
name = 'tspider'
...
class jdSpider(scrapy.Spider):
name = 'jspider'
...
process = CrawlerProcess(get_project_settings())
process.crawl('tspider')
process.crawl('jspider')
process.start(stop_after_crawl=False)
当我运行这个时,我得到这个错误:
raise error.ReactorNotRestartable()
twisted.internet.error.ReactorNotRestartable
当我在终端中滚动时,我看到成功运行了两个蜘蛛,并且成功抓取了我想要获取的数据。但是,错误发生在最后,我猜是因为进程无法终止?我尝试了 process.stop 但它不起作用。我还尝试了官方指南(https://docs.scrapy.org/en/latest/topics/practices.html)上的代码,但那会导致蜘蛛未找到错误。任何想法如何解决它?
解决方案
您是否尝试过 CrawlRunner 和文档给出的示例?CrawlerRunner 可用于运行多个蜘蛛并能够手动停止。
如果你有,你能否提供一个最小的代码示例以及你得到的明确错误消息。
推荐阅读
- java - 'Users' 以外的集合中的 User.findOne()
- mysql - 当我运行此查询时,为什么其他参与者获得特定于其他参与者的值?
- regex - 正则表达式不匹配特定字符串,但需要额外检查
- javascript - 链接到不同页面中的部分不起作用
- android - 在 Flutter 中使用 showModalBottomSheet() 方法构建的底部工作表上显示的小部件中未更新变量
- java - 如何从 jTable 在 jSpinner 中设置值时间
- android - 使用标题和正文字段将多部分图像上传到服务器时出现颤振格式异常?
- ios - 表格视图中的分隔符(Swift)
- ruby - 如何从 zsh 安装和运行“hanami new bookshelf”
- twilio - 从 DialogFlow API 开始短信聊天