Подтвердить что ты не робот

Python Scrapy, как определить конвейер для элемента?

Я использую scrapy для сканирования разных сайтов, для каждого сайта у меня есть Item (разная информация извлекается)

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

Например:

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

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

4b9b3361

Ответ 1

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

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