我正在学习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()
这里的结构:
问题来源:stackoverflow
我通常建议的原因是将您的项目路径附加到PYTHONPATH
:
export PYTHONPATH="${PYTHONPATH}:/path/to/quotetutorial/"
并在您的quotes_spider.py内部使用:
from quotetutorial.items import QuotetutorialItem
现在,如果您想从quotes 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
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。