五、Scrapy框架(6)——下载文件和图片

下载文件和图片

Scrapy为下载item中包含的文件(比如在爬取到产品时,同时也想保存对应的图片)提供了一个可重用的item pipelines。这些 pipeline有些共同的方法和结构(我们称之为 media pipeline)。一般来说会使用 Files pipeline或者 Image Pipeline

为什么要选择使用 scrapy 内置的下载文件的方法

  1. 避免重新下载最近已经下载过的数据。
  2. 可以方便的指定文件存储的路径。
  3. 可以将下载的图片转换成通用的格式。比如png或jpg。
  4. 可以方便的生成缩略图。
  5. 可以方便的检测图片的宽和高,确保他们满足最小限制。
  6. 异步下载,效率非常高。

下载文件的 Files Pipeline

当使用Files Pipeline 下载文件的时候,按照以下步骤来完成:

  1. 定义好一个Items ,然后在这个 item 中定义两个属性,分别为 file_urls 以及 filesfile_urls是用来存储需要下载的图片的url链接,需要给一个列表。
  2. 当文件下载完成后,会把文件下载的相关信息存储到itemfiles属性中。比如下载路径、下载的url和文件的校验码等。
  3. 在配置文件 settings.py中配置 FILES_STORE,这个配置是用来设置文件下载下来的路径。
  4. 启动 pipeline:在 ITEM_PIPELINES中设置 scrapy.pipelines.files.FilesPipeline:1

下载图片的 Image Pipeline

当使用Image Pipeline下载文件的时候,按照以下步骤来完成:

  1. 定义好一个Item,然后在这个 Item 中定义两个属性,分别为 image_urls以及 imagesimage_urls是用来存储需要下载的图片的url链接,需要给一个列表。
  2. 当文件下载完成后,会把文件下载的相关信息存储到itemimages属性中。比如下载路径、下载的url和文件的校验码等。
  3. 在配置文件 settings.py中配置 IMAGES_STORE,这个配置是用来设置文件下载下来的路径。
  4. 启动 pipeline:在 ITEM_PIPELINES中设置 scrapy.pipelines.images.ImagesPipeline:1
posted @ 2019-04-30 21:15  渣爷  阅读(605)  评论(0)    收藏  举报