下载文件和图片

Posted colden

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下载文件和图片相关的知识,希望对你有一定的参考价值。

下载文件和图片

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

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

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

下载文件的File Pipeline

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

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

下载图片的Images Pipline

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

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

以上是关于下载文件和图片的主要内容,如果未能解决你的问题,请参考以下文章

完全下载文件时,将下载的文件从一个片段传递到另一个片段

CardView 不在披萨片段中显示图片

图片预加载

我无法从 firebase 获取下载网址()。请任何人帮助这是我的代码和错误。 (我正在使用片段)[重复]

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题