我一直试图编写一个Python文件来抓取网站页面的全部内容。现在,在我运行代码之前,一切似乎都很好。
我已经确保从项目python文件链接这些项目。我应该不会收到任何错误,但仍然会收到“ 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
对于解决此问题的任何帮助,将非常感谢,谢谢!
答案 0 :(得分:0)
from analogic_scrape.items import AnalogicScrapeItem
会做这份工作。使用..
时,是从相对路径导入文件。
但是,如果您使用scrapy crawl analogic
从命令行运行脚本,则相对导入不是问题。