• 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 
  • 相关阅读:
    javaweb登录验证码的实现
    jQuery Ajax 简单的实现跨域请求
    Java Socket长连接示例代码
    Java socket长连接代码实现
    带日期的bean转为json(bean->JSON)
    函数迭代器、生成器、递归
    闭包函数和装饰器
    函数名称空间与作用域
    函数基础
    基本的文件操作
  • 原文地址:https://www.cnblogs.com/cq146637/p/9053203.html
Copyright © 2020-2023  润新知