2009-06-29 3 views
12

Я использую Scrapy для обхода различных сайтов, для каждого сайта я есть пункт (различная информация извлекается)Python Scrapy, как определить конвейер для элемента?

Ну, например, у меня есть общий трубопровод (большая часть информации, то же самое), но теперь я ползать какой-то ответ google search, и конвейер должен быть другим.

Например:

GenericItem использует GenericPipeline

Но GoogleItem использует GoogleItemPipeline, но когда паук ползает он пытается использовать GenericPipeline вместо GoogleItemPipeline .... как я могу указать, какой трубопроводную Google паук должен использовать?

ответ

14

Теперь только один способ - проверить тип предмета в трубопроводе и обрабатывать его или вернуть "как есть"

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 
Смежные вопросы