Python Scrapy, como definir um gasoduto para um item?
-
20-08-2019 - |
Pergunta
Eu estou usando scrapy para rastrear sites diferentes, para cada site Eu tenho um Item (informação diferente é extraído)
Bem, por exemplo, eu tenho um gasoduto genérico (a maioria das informações é o mesmo), mas agora eu estou engatinhando alguma resposta google search e do gasoduto deve ser diferente.
Por exemplo:
GenericItem
usa GenericPipeline
Mas o GoogleItem
usos GoogleItemPipeline
, mas quando a aranha está rastejando ele tenta usar GenericPipeline
vez de GoogleItemPipeline
.... como posso especificar quais gasoduto Google aranha deve usar?
Solução
Agora, apenas uma maneira - cheque tipo de item no gasoduto e processá-lo ou retorno "como é"
pipelines.py :
from grabbers.items import FeedItem
class StoreFeedPost(object):
def process_item(self, domain, item):
if isinstance(item, FeedItem):
#process it...
return item
items.py :
from scrapy.item import ScrapedItem
class FeedItem(ScrapedItem):
pass
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow