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?

Foi útil?

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
scroll top