Scrapy ImgsPipeline télécharge des images en utilisant iterm comme nom d'image

Lorsque Python Scrapy utilise ImgsPipeline pour télécharger des images, spécifiez le paramètre iterm comme nom de l'image

  1. Lors de la soumission du lien de demande img_url dans la fonction get_media_requests , utilisez la méthode meta pour ajouter un paramètre supplémentaire à transmettre dans le titre - le nom de l'image, et le nom de l'image est soumis de manière itérative par l'iterm de pipeline précédent.
  2. Dans la fonction file_path, utilisez la méta méthode de requête pour sortir les paramètres et obtenir le nom de l'image.

code source

'''参数说明

:item['title']: 向管道提交的图片名称 
:item['img_url']: 向管道提交的图片链接
'''
class ImgsPipeline(ImagesPipeline):
    # 主要重写下面三个父类方法
    def get_media_requests(self, item, info):
        title = item['title'] + '.jpg'
        yield scrapy.Request(item['img_url'], meta={
    
    'title': title})

    def file_path(self, request, response=None, info=None):
        return request.meta['title']  # 返回文件名

    def item_completed(self, results, item, info):
        global count
        print('{} -- 下载完成  第{}张'.format(item['title'], count))
        count += 1

        return item  # 返回给下一个即将被执行的管道类

Supongo que te gusta

Origin blog.csdn.net/weixin_43832353/article/details/118963524
Recomendado
Clasificación