2009-06-29 9 views
12

J'utilise scrapy à explorer différents sites, pour chaque site que j'ai un élément (autre information est extraite)Python Scrapy, comment définir un pipeline pour un article?

Eh bien, par exemple, j'ai un pipeline générique (la plupart des informations sont les mêmes), mais maintenant je suis rampants une réponse de recherche google et le pipeline doit être différent.

Par exemple:

GenericItem utilise GenericPipeline

Mais le GoogleItem utilise GoogleItemPipeline, mais quand l'araignée grouille, il tente d'utiliser GenericPipeline au lieu de GoogleItemPipeline .... comment puis-je spécifier quel pipeline Google araignée doit utiliser?

Répondre

14

Maintenant qu'une seule façon - vérifier le type d'objet dans la canalisation et le traiter ou le retour "est comme"

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 
Questions connexes