Ошибка ModuleNotFound с помощью Scrapy. Паук не найден - PullRequest
0 голосов
/ 14 апреля 2020

работает с ошибкой ModuleNotFound с веб-сканером, который я собрал на основе учебника проекта. Сканер работает нормально, но как только я добавил код для извлечения данных и сохранения их в базе данных MongoDB, у меня возникла проблема при запуске сканера «ModuleNotFoundError», и, похоже, он говорит, что не может найти модуль для моего паука (name-'stackspider) ). Так как паук работал нормально, прежде чем не уверен, где разрыв.

Не хотел перегружать код для первого вопроса. Как я могу устранить эту ошибку ModuleNotFound?

Если необходимы дополнительные сведения или код с радостью предоставим. Спасибо за помощь.

[это ссылка на учебник, который я использовал для создания проекта скребка] (https://realpython.com/web-scraping-with-scrapy-and-mongodb/#scrapy -проект )

2020-04-14 08:23:28 [twisted] CRITICAL: 
Traceback (most recent call last):
    File "/Users/blouie/.conda/envs/GoScrape/lib/python3.7/site-packages/twisted/internet/defer.py", line 1418, in _inlineCallbacks
    result = g.send(result)
    File "/Users/blouie/.conda/envs/GoScrape/lib/python3.7/site-packages/scrapy/crawler.py", line 89, in crawl
self.engine = self._create_engine()
    File "/Users/blouie/.conda/envs/GoScrape/lib/python3.7/site-packages/scrapy/crawler.py", line 103, in _create_engine
return ExecutionEngine(self, lambda _: self.stop())
    File "/Users/blouie/.conda/envs/GoScrape/lib/python3.7/site-packages/scrapy/core/engine.py", line 70, in __init__
self.scraper = Scraper(crawler)
    File "/Users/blouie/.conda/envs/GoScrape/lib/python3.7/site-packages/scrapy/core/scraper.py", line 71, in __init__
self.itemproc = itemproc_cls.from_crawler(crawler)
    File "/Users/blouie/.conda/envs/GoScrape/lib/python3.7/site-packages/scrapy/middleware.py", line 53, in from_crawler
return cls.from_settings(crawler.settings, crawler)
    File "/Users/blouie/.conda/envs/GoScrape/lib/python3.7/site-packages/scrapy/middleware.py", line 34, in from_settings
mwcls = load_object(clspath)
    File "/Users/blouie/.conda/envs/GoScrape/lib/python3.7/site-packages/scrapy/utils/misc.py", line 50, in load_object
mod = import_module(module)
    File "/Users/blouie/.conda/envs/GoScrape/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
    File "<frozen importlib._bootstrap>", line 983, in _find_and_load
    File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
    File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
    File "<frozen importlib._bootstrap>", line 983, in _find_and_load
    File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'stackspider'

Код для мой паук (stackspider.py)

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from scrapy import Spider
from scrapy.selector import Selector
from bigscrape.items import BigscrapeItem


class StackspiderSpider(Spider):
    name = 'stackspider'
    allowed_domains = ['stackoverflow.com']
    start_urls = ["http://stackoverflow.com/questions?pagesize=50&sort=newest"]

    rules = (
        Rule(LinkExtractor(allow=r'Items/'), callback='parse_item', follow=True),
)

    def parse(self, response):
        #item = BigscrapeItem()
        questions = Selector(response).xpath('//div[@class="summary"]/h3')
        for question in questions:
            item = BigscrapeItem()
            item['title'] = question.xpath(
            'a[@class="question-hyperlink"]/text()').get()
            item['url'] = question.xpath(
            'a[@class="question-hyperlink"]/@href').get()

            yield item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...