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

Python 3.11.2运行Scrapy爬虫出现KeyError问题求助

Scrapy爬虫KeyError问题:找不到Spider 'Myspider'

问题详情

  • 运行环境:Python 3.11.2
  • 报错信息:

    raise KeyError(f"Spider not found: {spider_name}")
    KeyError: 'Spider not found: Myspider'

  • 操作步骤:已在包含scrapy.cfg文件的目录下执行命令 scrapy crawl myspider
  • 爬虫代码:
    import scrapy
    
    class ebook_scrapy(scrapy.Spider):
        name = "myspider"
        start_urls = ['https://books.toscrape.com/']
    
        def parse(self, response):
          print(["OurRespons!"])
            print(response)
    

解决方案

  • 检查爬虫文件存放路径
    Scrapy要求爬虫类必须放在项目的spiders子目录下,正确的项目结构应该是:

    你的项目名/
        scrapy.cfg
        你的项目名/
            spiders/
                你的爬虫文件.py  # 这里存放ebook_scrapy类代码
            items.py
            middlewares.py
            ...其他文件
    

    如果爬虫文件不在spiders目录中,Scrapy无法扫描到该爬虫,就会触发KeyError。

  • 修复代码缩进错误
    你提供的爬虫代码中parse方法存在缩进不一致的问题,这会导致Python无法正确解析类定义,Scrapy也就识别不到这个爬虫。修复后的代码:

    import scrapy
    
    class ebook_scrapy(scrapy.Spider):
        name = "myspider"
        start_urls = ['https://books.toscrape.com/']
    
        def parse(self, response):
            print(["OurRespons!"])
            print(response)
    
  • 确认命令与爬虫name属性完全一致
    Scrapy对爬虫名称大小写敏感,确保scrapy crawl命令后指定的名称和代码中name属性的字符串完全匹配(包括大小写、特殊字符)。

  • 确认执行命令的目录正确
    必须在包含scrapy.cfg的项目根目录执行scrapy crawl命令,不要进入项目内部的子目录(比如你的项目名/你的项目名/目录)运行命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:37:42