开发者社区> 问答> 正文

在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()

这里的结构:

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 08:58:26 581 0
1 条回答
写回答
取消 提交回答
  • 我通常建议的原因是将您的项目路径附加到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

    2020-03-24 08:58:32
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载