Python Scrapy,如何为项目定义管道?
我使用scrapy来抓取不同的站点,每个站点我都有一个条目(提取了不同的信息) 例如,我有一个通用的管道(大多数信息都是相同的),但现在我正在抓取一些谷歌搜索响应,管道必须不同 例如:Python Scrapy,如何为项目定义管道?,python,screen-scraping,scrapy,Python,Screen Scraping,Scrapy,我使用scrapy来抓取不同的站点,每个站点我都有一个条目(提取了不同的信息) 例如,我有一个通用的管道(大多数信息都是相同的),但现在我正在抓取一些谷歌搜索响应,管道必须不同 例如: GenericItem使用GenericPipeline 但是GoogleItem使用GoogleItemPipeline,但是当爬行器爬行时,它尝试使用GenericPipeline,而不是GoogleItemPipeline…如何指定Google爬行器必须使用的管道?现在只有一种方法-检查管道中的项目类型并处
GenericItem
使用GenericPipeline
但是
GoogleItem
使用GoogleItemPipeline
,但是当爬行器爬行时,它尝试使用GenericPipeline
,而不是GoogleItemPipeline
…如何指定Google爬行器必须使用的管道?现在只有一种方法-检查管道中的项目类型并处理它或返回“原样”
pipelines.py:
items.py:
from grabbers.items import FeedItem
class StoreFeedPost(object):
def process_item(self, domain, item):
if isinstance(item, FeedItem):
#process it...
return item
from scrapy.item import ScrapedItem
class FeedItem(ScrapedItem):
pass