首页 > 其他 > 详细

scrapy图片数据爬取-基于文件下载的管道类

时间:2020-04-06 18:58:15      阅读:66      评论:0      收藏:0      [点我收藏+]
  • 在scrapy中我们之前爬取的都是基于字符串类型的数据,那么要是基于图片数据的爬取,那又该如何呢?
    • 其实在scrapy中已经为我们封装好了一个专门基于图片请求和持久化存储的管道类ImagesPipeline,那也就是说如果想要基于scrapy实现图片数据的爬取,则可以直接使用该管道类即可。
  • ImagesPipeline使用流程

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

from scrapy.pipelines.images importImagesPipeline
import scrapy
classImgproPipeline(object):
  item =None
  def process_item(self, item, spider):
    # print(item)
    return item
    #ImagesPipeline专门用于文件下载的管道类,下载过程支持异步和多线程
classImgPipeLine(ImagesPipeline):
  #对item中的图片进行请求操作
  def get_media_requests(self, item, info):
    yield scrapy.Request(item[src])
    #定制图片的名称
  def file_path(self, request, response=None, info=None):
    url = request.url
    file_name = url.split(/)[-1]
    return file_name
  def item_completed(self, results, item, info):
    return item #该返回值会传递给下一个即将被执行的管道类

scrapy图片数据爬取-基于文件下载的管道类

原文:https://www.cnblogs.com/cou1d/p/12626295.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!