在 Scrapy 中导入项目时的相对错误
Relative error while importing items in Scrapy
我正在学习 Python 以及如何使用 Scrapy。
我一直在抓取“http://quotes.toscrape.com/”并且一切正常,直到我尝试使用项目组织数据。
似乎错误是
from ..items import QuotetutorialItem
ImportError: attempted relative import with no known parent package"
我无法找到导入项目的正确方法,因此非常感谢您的帮助!
这是我的蜘蛛代码:
import scrapy
from ..items import QuotetutorialItem
class QuoteSpider(scrapy.Spider):
name = "quotes"
start_urls = ["http://quotes.toscrape.com/"]
def parse(self, response):
items = QuotetutorialItem()
all_div_quotes = response.css("div.quote")
for quotes in all_div_quotes:
title = quotes.css("span.text::text").extract()
author = quotes.css(".author::text").extract()
tag = quotes.css(".tag::text").extract()
items["title"] = title
items["author"] = author
items["tag"] = tag
yield items
items.py的代码:
import scrapy
class QuotetutorialItem(scrapy.Item):
# define the fields for your item here like:
title = scrapy.Field()
author = scrapy.Field()
tag = scrapy.Field()
这里是结构:
为什么我通常建议将您的项目路径附加到 PYTHONPATH
:
export PYTHONPATH="${PYTHONPATH}:/path/to/quotetutorial/"
并在您的 quotes_spider.py
中使用:
from quotetutorial.items import QuotetutorialItem
现在如果你想从 quotes_spider.py
导入包到 items.py
,下面应该可以解决问题:
from quotetutorial.spiders.quotes_spider import QuotetutorialItem
或者,以下方法也有效:
export PYTHONPATH="${PYTHONPATH}:/path/to/quotetutorial/quotetutorial/"
然后:
from items import QuotetutorialItem
或
from spiders.quotes_spider import QuotetutorialItem
我正在学习 Python 以及如何使用 Scrapy。 我一直在抓取“http://quotes.toscrape.com/”并且一切正常,直到我尝试使用项目组织数据。 似乎错误是
from ..items import QuotetutorialItem
ImportError: attempted relative import with no known parent package"
我无法找到导入项目的正确方法,因此非常感谢您的帮助!
这是我的蜘蛛代码:
import scrapy
from ..items import QuotetutorialItem
class QuoteSpider(scrapy.Spider):
name = "quotes"
start_urls = ["http://quotes.toscrape.com/"]
def parse(self, response):
items = QuotetutorialItem()
all_div_quotes = response.css("div.quote")
for quotes in all_div_quotes:
title = quotes.css("span.text::text").extract()
author = quotes.css(".author::text").extract()
tag = quotes.css(".tag::text").extract()
items["title"] = title
items["author"] = author
items["tag"] = tag
yield items
items.py的代码:
import scrapy
class QuotetutorialItem(scrapy.Item):
# define the fields for your item here like:
title = scrapy.Field()
author = scrapy.Field()
tag = scrapy.Field()
这里是结构:
为什么我通常建议将您的项目路径附加到 PYTHONPATH
:
export PYTHONPATH="${PYTHONPATH}:/path/to/quotetutorial/"
并在您的 quotes_spider.py
中使用:
from quotetutorial.items import QuotetutorialItem
现在如果你想从 quotes_spider.py
导入包到 items.py
,下面应该可以解决问题:
from quotetutorial.spiders.quotes_spider import QuotetutorialItem
或者,以下方法也有效:
export PYTHONPATH="${PYTHONPATH}:/path/to/quotetutorial/quotetutorial/"
然后:
from items import QuotetutorialItem
或
from spiders.quotes_spider import QuotetutorialItem