ValueError: попытка относительного импорта за пределы пакета верхнего уровня (Scrapy) - PullRequest
0 голосов
/ 20 июня 2019

Я пытался написать файл Python для очистки всего содержимого страницы веб-сайта.Теперь в моем коде все нормально, пока я не запустил его.

Я убедился, что связал элементы из файла python items.Я не должен получать никаких ошибок, но все же я получаю «ValueError: попытка относительного импорта за пределы пакета верхнего уровня»

Вот мой код из моего основного файла Python:

import scrapy
from ..items import AnalogicScrapeItem


class AnalogicSpider(scrapy.Spider):
    name = 'analogic'
    start_urls = ['https://www.analogic.com/about/']

    def parse(self, response):
        items = AnalogicScrapeItem()
        body1 = response.css('body').css('::text').extract()

        items['body1'] = body1

        yield items

Вот мой код из файла items.py:

import scrapy


class AnalogicScrapeItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    body1 = scrapy.Field()

После запуска кода я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "C:/Users/Kev/PycharmProjects/whole_page_extract3/analogic_scrape/
        analogic_scrape/spiders/analogic.py", line 3, in <module> 
        from ..items import AnalogicScrapeItem
        ValueError: attempted relative import beyond top-level package

Любая помощь в решении этой проблемы будет принята с благодарностью, спасибо!

1 Ответ

0 голосов
/ 20 июня 2019
from analogic_scrape.items import AnalogicScrapeItem

сделает работу. Когда вы используете .., вы импортируете файлы по относительному пути.

Однако, если вы запустите скрипт из командной строки с scrapy crawl analogic, относительный импорт не будет проблемой.

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