zoukankan      html  css  js  c++  java
  • Scrapy学习-5-下载图片实例

    1. 在项目下创建一个images文件用于存放图片
    2. 载图片相关模块
    1 pip install pillow
    3.修改配置文件,激活pipelines
    ITEM_PIPELINES = {
        'ArticleSpider.pipelines.ArticlespiderPipeline': 300,
        'scrapy.pipelines.images.ArticleImagePipeline': 1,
    }
    
    IMAGES_URLS_FIELD = 'front_image_url'
    
    import os
    
    PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
    
    IMAGES_STORE = os.path.join(PROJECT_DIR, 'images')
    
    # 过滤图片大小
    
    IMAGES_MIN_HEIGHT = 100
    
    IMAGES_MIN_WIDTH = 100
    注意
      images默认被当做列表处理,所以item在赋值时,要使用 [ image_name ] 接收

    4.在保存图片的时候我们可以顺便保存图片路径,以便下次获取

    # 自定制一个pipelines
    
    # 添加一个class
    
    from scrapy.pipelines.images import ImagesPipeline
    
    class ArticleImagePipeline(ImagesPipeline):
        
        def item_completed(self, results, item, info):
            
            for res, value in results:
    
                image_path = value['path']
    
                item['front_image_path'] = image_path
    
            # 处理完成路径需要将item返回,因为在settings中,配置的了优先级,该pipelines可以将items继续传递给下一个pipelines中
    
            return item 
  • 相关阅读:
    %
    【收藏】Javascript调用后台代码的方法
    C++Builder2010中配置OpenCV2.2
    【收藏】Visual studio 2008 && 2010 快捷键大全
    队列的练习
    哈希表
    poj 3750 链表
    C/C++内存存储 mark在此
    二叉树,深搜,广搜
    链表的练习
  • 原文地址:https://www.cnblogs.com/cq146637/p/9053203.html
Copyright © 2011-2022 走看看