Python Scrapy , как определить конвейер для элемента?
-
20-08-2019 - |
Вопрос
Я использую scrapy для обхода разных сайтов, для каждого сайта у меня есть Элемент (извлекается разная информация).
Ну, например, у меня есть общий конвейер (большая часть информации одинакова), но теперь я просматриваю какой-то ответ поиска Google, и конвейер должен быть другим.
Например:
GenericItem
использование GenericPipeline
Но тот GoogleItem
использование GoogleItemPipeline
, но когда паук ползет , он пытается использовать GenericPipeline
вместо того , чтобы GoogleItemPipeline
....как я могу указать, какой конвейер Google spider должен использовать?
Решение
Теперь только один способ - проверить тип элемента в конвейере и обработать его или вернуть "как есть".
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
Не связан с StackOverflow