我怎样才能在图片中得到蜘蛛的名字pipelin

2024-07-04 07:18:39 发布

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

我有许多图像管道,但我想对不同的蜘蛛使用不同的保存方法。在

我知道在其他管道中我可以使用spider.name,但是如何在图像spipeline中得到它呢

class MyImagesPipeline(ImagesPipeline):
   if spider.name  in ['first']:
    def get_media_requests(self, item, info):

Tags: 方法namein图像getif管道def
2条回答

info.spider就是你想要的。在

def get_media_requests(self, item, info):
    info.spider.name

spider作为参数传递给process_item

https://scrapy.readthedocs.org/en/latest/topics/item-pipeline.html#item-pipeline-example

您可以在求值期间设置一个变量,以便在类范围内使用;或者,如果您需要在调用process_项之前使用spider,则可以自己实现一个钩子。在

class MyImagesPipeline(ImagesPipeline):
    spider = None

    def process_item(self, item, spider):
        self.spider = spider
        if self.spider.name in ['first']:
            get_media_requests(item, info)
        return item

    def get_media_requests(self, item, info):
        # whatever

您还可以直接从基类中检索信息,基类有一个具有spider属性的内部元类SpiderInfo。在

请参见:https://github.com/scrapy/scrapy/blob/master/scrapy/contrib/pipeline/media.py

相关问题 更多 >

    热门问题