如何在同一条Scrapy Pipeline.py中处理图像条目和通用条目?

2024-04-25 19:21:28 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我已经定义了项目.py,例如:

#item.py
class schoolItem(scrapy.Item):
class specialtyItem(scrapy.Item):
class raidersItem(scrapy.Item):
class picturesItem(scrapy.Item):

然后,我将在同一个表中生成四个项目蜘蛛.py. 我将处理四项管道。但是三项是来自网页的数据项,另一项是图像项.so我决定调用imagesPipeline类来处理images项。 我的想法是:

#pipeline.py
class MyImagesPipeline(ImagesPipeline):
.....
.....
  def process_item(self,item,spider):
    if isinstance(item,schoolItem):
        self.db[self.coll_a].insert(dict(item))  
    elif isinstance(item,specialtyItem):
        self.db[self.coll_b].insert(dict(item))
    elif isinstance(item,raidersItem):
        self.db[self.coll_c].insert(dict(item))
    elif isinstance(item,picturesItem):
        self.get_media_requests(item, info)
    return item

  def get_media_requests(self, item, info):        
        for url in item["image_urls"]:
            yield scrapy.Request(url,meta={'cname': item["cname"]})

但我不知道刮痧会不会把图片重新整理一下? 我想同时处理imageItem和其他三个项目,我该怎么办?你知道吗


Tags: 项目pyselfdbitemdictclassisinstance