2009-06-29 24 views
12

estoy usando scrapy arrastrarse diferentes sitios, para cada sitio que tiene un artículo (diferente información se extrae)Python Scrapy, ¿cómo definir una tubería para un artículo?

Bueno, por ejemplo tengo una tubería genérica (la mayor parte de la información que es lo mismo), pero ahora estoy gateando algunas respuestas de búsqueda de Google y la canalización deben ser diferentes.

Por ejemplo:

GenericItem utiliza GenericPipeline

Pero el GoogleItem utiliza GoogleItemPipeline, pero cuando la araña es rastreo se trata de usar GenericPipeline en lugar de GoogleItemPipeline .... ¿cómo puedo especificar qué tubería Google araña ¿debe usar?

Respuesta

14

Ahora solo camino - verificar el tipo de artículo en la tubería y procesarla o devolución "tal cual"

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 
Cuestiones relacionadas