Я уже сделал рабочий проект с использованием Scrapy, но это было немного беспорядочно, поэтому я решил сделать более изысканный новый.
На этот вопрос отвечали несколько раз, но ни одно из решений не помогло мне. Ошибка настолько проста, что я немного расстроен.
Когда я пытаюсь запустить своего паука, с 'scrapy crawl generic_spider' я получаю ошибку
KeyError: 'Spider not found: generic_spider'
Вот трассировка:
Traceback (most recent call last):
File "C:\Users\Manuel\Anaconda3\Scripts\scrapy-script.py", line 10, in <module>
sys.exit(execute())
File "C:\Users\Manuel\Anaconda3\lib\site-packages\scrapy\cmdline.py", line 150, in execute
_run_print_help(parser, _run_command, cmd, args, opts)
File "C:\Users\Manuel\Anaconda3\lib\site-packages\scrapy\cmdline.py", line 90, in _run_print_help
func(*a, **kw)
File "C:\Users\Manuel\Anaconda3\lib\site-packages\scrapy\cmdline.py", line 157, in _run_command
cmd.run(args, opts)
File "C:\Users\Manuel\Anaconda3\lib\site-packages\scrapy\commands\crawl.py", line 57, in run
self.crawler_process.crawl(spname, **opts.spargs)
File "C:\Users\Manuel\Anaconda3\lib\site-packages\scrapy\crawler.py", line 170, in crawl
crawler = self.create_crawler(crawler_or_spidercls)
File "C:\Users\Manuel\Anaconda3\lib\site-packages\scrapy\crawler.py", line 198, in create_crawler
return self._create_crawler(crawler_or_spidercls)
File "C:\Users\Manuel\Anaconda3\lib\site-packages\scrapy\crawler.py", line 202, in _create_crawler
spidercls = self.spider_loader.load(spidercls)
File "C:\Users\Manuel\Anaconda3\lib\site-packages\scrapy\spiderloader.py", line 71, in load
raise KeyError("Spider not found: {}".format(spider_name))
KeyError: 'Паук не найден: generic_spider'
Также мой generic_spider и настройки.
import scrapy
import re
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from genericScraper.items import GenericScraperItem
from scrapy.exceptions import CloseSpider
from scrapy.http import Request
class GenericScraperSpider(CrawlSpider):
name = "generic_spider"
#Things
def start_requests(self)
#More things
def parse_item(self, response)
settings.py
# -*- coding: utf-8 -*-
# Scrapy settings for genericScraper project
#
# For simplicity, this file contains only settings considered important or
# commonly used. You can find more settings consulting the documentation:
#
# https://doc.scrapy.org/en/latest/topics/settings.html
# https://doc.scrapy.org/en/latest/topics/downloader-middleware.html
# https://doc.scrapy.org/en/latest/topics/spider-middleware.html
BOT_NAME = 'genericScraper'
SPIDER_MODULES = ['genericScraper.spiders']
NEWSPIDER_MODULE = 'genericScraper.spiders'
EDIT:
Дерево (я не знаю, почему появляется только pycache, EDIT2: кажется, дерево показывает только папки)
C:.
└───genericScraper
├───spiders
│ └───__pycache__
└───__pycache__
CFG
[Настройки]
default = genericScraper.settings
[развернуть]
project = genericScraper