2009-06-29 5 views
12

ich scrapy bin mit verschiedenen Seiten zu kriechen, für jede Seite, die ich einen Artikel (Informationen unterschiedlich extrahiert)Python Scrapy, wie definiert man eine Pipeline für einen Artikel?

Nun, zum Beispiel habe ich eine generische Pipeline (die meisten Informationen ist das gleiche), aber jetzt bin kriechen I einige Google-Suchantwort und die Pipeline muss anders sein.

Zum Beispiel:

GenericItem verwendet GenericPipeline

Aber die GoogleItem verwendet GoogleItemPipeline, aber wenn die Spinne krabbelt es GenericPipeline statt GoogleItemPipeline zu verwenden versucht .... wie ich die Pipeline Google Spinne angeben benutzen müssen?

Antwort

14

jetzt nur einen Weg - überprüfen Einzelteilart in Pipeline und verarbeiten oder Rückkehr "as is"

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