Rico:
Eu estou aprendendo Python e como usar Scrapy. Eu tenho raspagem " http://quotes.toscrape.com/ " e tudo funcionou bem até que eu tentei dados organizados usando itens. Parece que o erro é
from ..items import QuotetutorialItem
ImportError: attempted relative import with no known parent package"
Eu não tenho sido capaz de encontrar a maneira correta de itens de importação para que a sua ajuda seria muito apreciada!
Aqui está o código das minhas aranhas:
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
O código de 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()
E aqui a estrutura:
Giorgos Myrianthous:
Por que eu geralmente conselho é para anexar o caminho de seu projeto para PYTHONPATH
:
export PYTHONPATH="${PYTHONPATH}:/path/to/quotetutorial/"
e dentro do seu quotes_spider.py
uso:
from quotetutorial.items import QuotetutorialItem
Agora, se você quer pacote de importação items.py
de exemplo quotes_spider.py
, o seguinte deve fazer o truque:
from quotetutorial.spiders.quotes_spider import QuotetutorialItem
Alternativamente, o seguinte também vai funcionar:
export PYTHONPATH="${PYTHONPATH}:/path/to/quotetutorial/quotetutorial/"
e depois:
from items import QuotetutorialItem
ou
from spiders.quotes_spider import QuotetutorialItem