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
相关产品推荐
相关产品推荐

