图片下载

Day87 图片下载免费看

在settings文件中创建pipline、进一步获取图片保存地址和文章的URL地址

10-04侠课岛    基础入门       

后端/后端/Python 由浅入深入门 16     0     173

总结

今天要学习的是图片下载,Scrapy用ImagesPipeline类提供一种方便的方式来下载和存储图片;

  • (1)首先还是使用dribbble.com这个网站来爬取数据,先在项目中的dribbble.py文件中根据响应来获取图片的src属性,也就是图片路径,如:response.css('img::attr(src)').extract()。这样我们就已经获取到了图片的路径了,这个我们之前已经学过了;

  • (2)然后在items.py文件中根据自己的需求添加字段,这里我们就创建一个图片地址的字段,如:image_url = scrapy.Field()

  • (3)接着我们还需要在settings文件中设置条件和属性,如在ITEM_PIPELINES的列表里面定义一个images的pipline,如:'scrapy.pipelines.images.ImagesPipeline': 1,是用来处理图片的下载过程的。然后根据item中的字段来设置哪一个内容需要被下载,如:IMAGES_URLS_FIELD = 'image_url'。还需要指定图片下载存储的路径,这个路径可以根据自己的需求指定;

  • (4)然后在dribbble.py文件中实例化items.py文件中的类,再把获取到的图片路径赋给类中的字段,这里的字段名要与items.py文件中的字段名一致,如:item['image_urls'] = list_imgs,记得yield这个实例化对象;

  • (5)编辑pipelines.py文件,自定义ImagePipeline类继承ImagesPipeline,导入需要用到的库。要修改图片的保存路径需要重写ImagesPipeline类中的file_path方法;

Pipeline介绍

  • Item Pipeline又称之为管道,顾名思义就是对数据的过滤处理,主要作用包括:清理HTML数据、验证爬取数据,检查爬取字段、查重并丢弃重复内容、将爬取结果保存到数据库等;

  • 创建一个项目的时候都会自带pipeline,pipeline的几个核心方法有:

  • open_spider(spider):在开启spider的时候触发的,常用于初始化操作,如常见开启数据库连接或打开文件;

  • close_spider(spider):在关闭spider的时候触发的,常用于关闭数据库连接;

  • process_item(item, spider):item表示被爬取的item,spider 表示爬取该item的spider,每个item pipeline组件都需要调用该方法,这个方法必须返回一个 Item (或任何继承类)对象, 或是抛出 DropItem 异常,被丢弃的item将不会被之后的pipeline组件所处理;

  • from_crawler(cls, crawler):是一个类方法,常用于从settings.py获取配置信息;

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

16

本课评分:
  •     非常好
难易程度:
  •     适中的

内容目录



|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?