scrapy框架(二)给你一套用内置方法更快进行图片下载的方法总结

本文主要介绍如何使用Scrapy框架进行图片下载。首先,通过XPath定位获取图片URL,接着在pipelines中处理图片下载。文章讨论了两种下载方法:直接下载和使用Scrapy内置的ImagesPipeline。直接下载涉及接收图片URL、切割文件名和保存路径,而内置方法则利用PicItem定义image_urls和images属性,并配置IMAGES_STORE进行文件存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、项目热身

(1)生成爬虫,并将 start_urls 改成正确的开始url
(2)配置 setting 文件内容

二、取图片URL的主要逻辑

  1. xpath定位li的位置 这里的 div 可以省略
  2. xpath定位到图片的 src 标签
  3. yield方法传递到 pipelines 中

三、在 pipelines 中下载URL并保存文件

直接下载
  1. 接收yield回来的图片url地址 # src
  2. 切割地址获取保存图片的文件名 # split
  3. 获取文件存储路径 # os.path.join os.path.dirname
  4. 下载图片 # request.urlretrieve(url, filename=None, ……)
使用内置的方法下载
  1. 获取url的逻辑代码中导入 from pic.items import PicItem
  2. 定义好一个Item,然后在这个item中定义两个属性,分别为image_urls以及images。image_urls是用来存储需要下载的文件的url链接,需要给一个列表 scrapy.Field()在这里插入图片描述
  3. 当文件下载完成后,会把文件下载的相关信息存储到item的images属性中。如下载路径、下载的url和图片校验码等
  4. 在配置文件settings.py中配置IMAGES_STORE,这个配置用来设置文件下载路径在这里插入图片描述
  5. 启动pipeline:在ITEM_PIPELINES中设置 scrapy.pipelines.images.ImagesPipeline:1(需要在 pipeline 导入模块from scrapy.pipelines.images import ImagesPipeline)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值