You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scrapy项目重启报错:'CrawlerRunner'对象无'spiders'属性

解决Scrapy中CrawlerRunner无spiders属性的AttributeError错误

问题详情

我之前开发了一个Scrapy项目,现在想重启它。项目包含多个爬虫,我编写了一个主脚本批量启动所有爬虫,之前运行正常,但现在出现错误:
AttributeError: 'CrawlerRunner' object has no attribute 'spiders'

原脚本代码

from scrapy.crawler import CrawlerRunner
from scrapy.utils.log import configure_logging
from scrapy.utils.project import get_project_settings
from twisted.internet import reactor
from LesInfosDuJour.pipelines import LesinfosdujourPipeline

configure_logging()
settings = get_project_settings()
runner = CrawlerRunner(settings)

for spider_name in runner.spiders.list():
    runner.crawl(spider_name)

d = runner.join()
d.addBoth(lambda _: reactor.stop())
reactor.run()
obj = LesinfosdujourPipeline()
obj.empty_procedure()
obj.duplicate_procedure()

项目配置与结构

  • settings.py相关配置:
SPIDER_MODULES = ['LesInfosDuJour.spiders']
NEWSPIDER_MODULE = 'LesInfosDuJour.spiders'
  • 项目目录结构:Scrap/LesInfosDuJour/spiders

解决方案

问题根源是CrawlerRunner本身并没有spiders属性,大概率是Scrapy版本更新导致的API变化。要获取项目中所有爬虫名称,改用Scrapy官方提供的SpiderLoader工具即可。

修改后的脚本代码:

from scrapy.crawler import CrawlerRunner
from scrapy.utils.log import configure_logging
from scrapy.utils.project import get_project_settings
from scrapy.utils.spiderloader import SpiderLoader
from twisted.internet import reactor
from LesInfosDuJour.pipelines import LesinfosdujourPipeline

configure_logging()
settings = get_project_settings()
# 通过SpiderLoader加载项目内所有爬虫
spider_loader = SpiderLoader(settings)
spider_names = spider_loader.list()

runner = CrawlerRunner(settings)

for spider_name in spider_names:
    runner.crawl(spider_name)

d = runner.join()
d.addBoth(lambda _: reactor.stop())
reactor.run()

obj = LesinfosdujourPipeline()
obj.empty_procedure()
obj.duplicate_procedure()

说明

  • SpiderLoader会读取settings.py中SPIDER_MODULES配置,自动从指定路径下查找并返回所有爬虫的名称列表。
  • 替换原代码中runner.spiders.list()的调用方式,改用spider_loader.list()即可解决属性不存在的错误。
  • 你的SPIDER_MODULES配置已经正确指向爬虫目录,无需额外调整。

内容的提问来源于stack exchange,提问作者Ayoub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 12:50:23