Scrapy的ImagePipeline如何将图片下载至本地并获取保存路径?

2026-06-11 05:331阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计349个文字,预计阅读时间需要2分钟。

Scrapy的ImagePipeline如何将图片下载至本地并获取保存路径?

使用Scrapy内置的ImagePipeline下载图片到本地,并在settings中开启ITEM_PIPELINES,添加以下内容:

pythonITEM_PIPELINES={ 'scrapy.pipelines.images.ImagesPipeline': 1,}

Scrapy的ImagePipeline如何将图片下载至本地并获取保存路径?

  1. 通过scrapy内置到ImagePipeline下载图片到本地
    1. 在settings中打开ITEM_PIPELINES的注释,并在这里面加入

      ‘scrapy.pipelines.images.ImagesPipeline‘:5,
      #后面的数字代表执行优先级 ,当执行pipeine的时候会按照数字由小到大执行

    2. 在settings中加入

      IMAGES_URLS_FIELD ="image_url" #image_url是在items.py中配置的网络爬取得图片地址 #配置保存本地的地址 project_dir=os.path.abspath(os.path.dirname(__file__)) #获取当前爬虫项目的绝对路径 IMAGES_STORE=os.path.join(project_dir,‘images‘) #组装新的图片路径  还有很多设置有特殊需要的话可以用哦 (详情可以去imagepipeine源码查看) IMAGES_MIN_HEIGHT=100 #设定下载图片的最小高度 IMAGES_MIN_WIDTH=100  #设定下载图片的最小宽度

      1. 可能会报错:

        ModuleNotFoundError: No module named ‘PIL‘

        1. 这时候安装pip install pillow库就可以了

  2. 获取图片保存本地的地址
    1. 下载图片,如果想获取图片保存本地的地址,那么就需要重写ImagesPipeline,并且在settings中调用重写的pipeline

      #既然要重写,记得提前引入 from scrapy.pipelines.images import ImagesPipeline class ArticleImagePipeline(ImagesPipeline): # 重载ImagePipeline中的item_completed方法,获取下载地址 def item_completed(self, results, item, info):   for ok,value in results: #通过断点可以看到图片路径存在results内     image_file_path=value[‘path‘] #将路径保存在item中返回     item[‘front_image_path‘]=image_file_path   return item

本文共计349个文字,预计阅读时间需要2分钟。

Scrapy的ImagePipeline如何将图片下载至本地并获取保存路径?

使用Scrapy内置的ImagePipeline下载图片到本地,并在settings中开启ITEM_PIPELINES,添加以下内容:

pythonITEM_PIPELINES={ 'scrapy.pipelines.images.ImagesPipeline': 1,}

Scrapy的ImagePipeline如何将图片下载至本地并获取保存路径?

  1. 通过scrapy内置到ImagePipeline下载图片到本地
    1. 在settings中打开ITEM_PIPELINES的注释,并在这里面加入

      ‘scrapy.pipelines.images.ImagesPipeline‘:5,
      #后面的数字代表执行优先级 ,当执行pipeine的时候会按照数字由小到大执行

    2. 在settings中加入

      IMAGES_URLS_FIELD ="image_url" #image_url是在items.py中配置的网络爬取得图片地址 #配置保存本地的地址 project_dir=os.path.abspath(os.path.dirname(__file__)) #获取当前爬虫项目的绝对路径 IMAGES_STORE=os.path.join(project_dir,‘images‘) #组装新的图片路径  还有很多设置有特殊需要的话可以用哦 (详情可以去imagepipeine源码查看) IMAGES_MIN_HEIGHT=100 #设定下载图片的最小高度 IMAGES_MIN_WIDTH=100  #设定下载图片的最小宽度

      1. 可能会报错:

        ModuleNotFoundError: No module named ‘PIL‘

        1. 这时候安装pip install pillow库就可以了

  2. 获取图片保存本地的地址
    1. 下载图片,如果想获取图片保存本地的地址,那么就需要重写ImagesPipeline,并且在settings中调用重写的pipeline

      #既然要重写,记得提前引入 from scrapy.pipelines.images import ImagesPipeline class ArticleImagePipeline(ImagesPipeline): # 重载ImagePipeline中的item_completed方法,获取下载地址 def item_completed(self, results, item, info):   for ok,value in results: #通过断点可以看到图片路径存在results内     image_file_path=value[‘path‘] #将路径保存在item中返回     item[‘front_image_path‘]=image_file_path   return item