zoukankan      html  css  js  c++  java
  • Scrapy下载图片及自定义分类下载路径

    配置下载图片的流程如下

    • 在items中定义两个属性,image_urls 和images 。image_urls是用来存储需要下载的图片url链接,列表类型;
    • 当文件下载完成后会把相关下载信息存入images属性中,如下载的url和图片校验码等;
    • 在配置文件settings中配置IMAGES_STORE用来指定下载的路径;
    • 启动pipeline,在settings中的ITEM_PIPELINE中设置scrapy.pipelines.images.ImagesPipeline:1;
    • 下载文件同理(两个属性file_urls和files),FILES_STORE

    自定义分类下载路径

    class CarImagesPipeline(ImagesPipeline):
        # 获取文件名
        def file_path(self, request, response=None, info=None):  # 在get_media_requests的方法后被调用
            path = super(CarImagesPipeline,self).file_path(request,response,info) #获取父类方法返回的图片名
            title = request.item.get('title') # 子文件夹名
            images = settings.IMAGES_STORE #主文件夹名
            title_path = os.path.join(images,title)
            if not os.path.exists(title_path):#不存在子文件夹就新建
                os.mkdir(title_path)
            image_name = path.replace('full/','') #获取父类方法返回的full%s%(image_guuid),并且获取图片的16进制哈希名
            image_path = os.path.join(title_path,image_name) #制作图片名
            return image_path
        
        # 生成下载请求
        def get_media_requests(self, item, info): 
            request_objs=super(CarImagesPipeline,self).get_media_requests(item,info)
            for request_obj in request_objs:
                request_obj.item = item #将item绑定到Request对象
            return request_objs
    
  • 相关阅读:
    USB 之传输编码格式 NRZI 介绍
    ubuntu 14.04 安装中文输入法
    uart 超声波传感器数据读取
    Embarcadero Delphi 7 Lite 7.0.4.453 中文版
    Delphi连接Oracle控件ODAC的安装及使用
    ODAC 安裝 (11.2.4)
    Sql中CHARINDEX用法
    DELPHI 数据库控件心得
    delphi uniDac
    Delphi连接Oracle控件ODAC的安装及使用
  • 原文地址:https://www.cnblogs.com/FuckSpider/p/11534621.html
Copyright © 2011-2022 走看看