zoukankan      html  css  js  c++  java
  • Scrapy框架(六)--图片数据抓取

    基于文件下载的管道类

    在scrapy中我们之前爬取的都是基于字符串类型的数据,那么要是基于图片数据的爬取,那又该如何呢?

    其实在scrapy中已经为我们封装好了一个专门基于图片请求和持久化存储的管道类ImagesPipeline,

    那也就是说如果想要基于scrapy实现图片数据的爬取,则可以直接使用该管道类即可。

    ImagesPipeline使用流程

    1.在配置文件中进行如下配置:
      IMAGES_STORE = ‘./imgs’:表示最终图片存储的目录

    2.管道类编写

    # ImagesPipeline专门用于文件下载的管道类,下载过程支持异步和多线程
    class imagesPipeline(ImagesPipeline):
        # 向指定url发送请求
        def get_media_requests(self, item, info):
            yield scrapy.Request(item['src'])
    
        # 定制文件名称   存储路径在settings指定
        def file_path(self, request, response=None, info=None):
            imgName = request.url.split('/')[-1]
    
            return imgName
    
        # 将item提交给下一个将要执行的管道
        def item_completed(self, results, item, info):
            return item
  • 相关阅读:
    Vue框架之基础知识
    Vue框架之初识
    Django组件之modelformset
    Django之小结
    Django组件之modelform
    Django之form表单详解
    jquery基础知识2
    jQuery基础知识1
    js基础知识4
    js基础知识3
  • 原文地址:https://www.cnblogs.com/sxy-blog/p/13215850.html
Copyright © 2011-2022 走看看