Scrapy学习第七课

本文介绍了如何使用Scrapy的ImagesPipeline爬取网页中的图片,并将其保存到本地。通过设置IMAGES_STORE和IMAGES_THUMBS,实现了图片的存储和缩略图的生成。详细讲解了ImagesPipeline的工作流程,包括get_media_requests和item_completed关键函数的使用,以及图片下载成功或失败的判断。最后展示了项目文件结构和实际图片保存结果。
摘要由CSDN通过智能技术生成

目标:爬取网页图片并保存

爬取网页中的图片,将图片下载到本地。
在这里插入图片描述

执行:爬取简书7日热门文章的图片

目标网页:简书7日热门文章图片

图片管道ImagesPipeline

爬虫结果基于管道pipeline进行处理,针对爬取的图片数据,scrapy提供图片管道ImagesPipeline进行处理。

1.其特性如下:

  • 将所有下载的图片转换成通用的格式(JPG)和模式(RGB)
  • 避免重新下载最近已经下载过的图片
  • 缩略图生成
  • 检测图像的宽/高,确保它们满足最小限制

这个管道也会为那些当前安排好要下载的图片保留一个内部队列,并将那些到达的包含相同图片的项目连接到那个队列中。 这可以避免多次下载几个项目共享的同一个图片。

2.工作流如下:

  • 在一个爬虫(自定义的爬虫类/文件),你抓取一个项目,把其中图片的URL放入 image_urls 组内(items文件定义)。
  • 项目从爬虫内返回,进入项目管道(pipeline文件)。
  • 当项目进入 ImagesPipeline,image_urls组内的URLs将被Scrapy的调度器和下载器(这意味着调度器和下载器的中间件可以复用)安排下载,当优先级更高,会在其他页面被抓取前处理。项目会在这个特定的管道阶段保持“locker”的状态,直到完成图片的下载(或者由于某些原因未完成下载)。
  • 当图片下载完,另一个组(images)将被更新到结构中。这个组将包含一个字典列表,其中包括下载图片的信息,比如下载路径、源抓取地址(从image_urls 组获得)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值