码迷,mamicode.com
首页 > 其他好文 > 详细

scrapy中下载文件和图片

时间:2019-10-19 15:08:06      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:文件的   页面   赋值   解析   下载页面   针对   出现   文件中   导出文件   

下载文件是一种很常见的需求,例如当你在使用爬虫爬取网站中的图片、视频、word、pdf、压缩包等的时候

 

scrapy中提供了FilesPipeline和ImagesPipeline,专门用来下载文件和图片:

  我们其实可以把这两个item pipeline看成是特殊的下载器,用户使用的时候只需要通过item的一个特殊的字段就可以将要下载的文件或者图片的url传递给它们,它们会自动将文件或者图片下载到本地,并将下载的结果信息存入到item的另一个特殊的字段,方便用户在导出文件的时候查阅

  FilesPipeline

    使用FilesPipeline下载页面中所有的PDF文件,

    1. 在配置文件settings中启用FilesPipeline,通常将其至于其它的item pipeline的前面
    2. 在配置文件中settings中,使用FILES_STORE指定文件的下载目录
    3. 在spider解析一个包含文件下载链接的页面的时候,将所有的需要下载文件的url地址都收集到一个列表中,赋值给item的file_urls字段(item[‘file_urls‘])。FilesPipeline在处理每一项item的时候会去读item[‘file_urls‘],对其中的每一个url进行下载

    当FilesPipeline下载完item[‘file_urls‘]所有的文件后,会讲各个文件的下载结果收集到另一个列表,赋值给item的files字段item[‘files‘]。下载的结果包括以下内容:

    1. Path:文件下载到本地的路径(相对于FILES_STORE的相对路径)。
    2. Checksum:文件的校验
    3. url:文件的url地址

  ImagesPipeline

    图片也是文件,所以下载图片本质上其实也是下载文件,ImagesPipeline是FilesPipeline的子类,使用上和FilesPipeline大同小异,只是在所使用的item字段和配置选项上略有差别,

      ImagesPipeline在FilesPipeline的基础上针对图片增加了一些特有的功能:

      1. 为图片生成缩略图
        1. 开启这个功能,只需要在settings中设置IMAGES_THUMBS,它是一个字典,每一项的值都是缩略图的尺寸
          IMAGES_THUMBS = {
             small: (50, 50),
             big: (270, 270),
          }
        2. 当你下载图片的时候,本地会出现三张图片(一张原图,两张缩略图)
      2. 过滤掉尺寸过小的图片
            1. 开启这个功能后,如果下载一张指定宽高的图片,该图片就会被抛弃掉,因为他的宽高不符合标准
            2. 需要在settings中配置IMAGES_MIN_WIDTH和IMAGES_MIN_HEIGHT,它们分别是指定图片的最小宽和高
              IMAGES_MIN_WIDTH = 110 
              IMAGES_MIN_HEIGHT = 110    

                       

          

 

scrapy中下载文件和图片

标签:文件的   页面   赋值   解析   下载页面   针对   出现   文件中   导出文件   

原文地址:https://www.cnblogs.com/tulintao/p/11703599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!