Python中scrapy下载保存图片的方法
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了Python中scrapy下载保存图片的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中scrapy下载保存图片的方法文章都会有所收获,
千家信息网最后更新 2025年11月07日Python中scrapy下载保存图片的方法
这篇文章主要介绍了Python中scrapy下载保存图片的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中scrapy下载保存图片的方法文章都会有所收获,下面我们一起来看看吧。
在日常爬虫练习中,我们爬取到的数据需要进行保存操作,在scrapy中我们可以使用ImagesPipeline这个类来进行相关操作,这个类是scrapy已经封装好的了,我们直接拿来用即可。
在使用ImagesPipeline下载图片数据时,我们需要对其中的三个管道类方法进行重写,其中 ― get_media_request 是对图片地址发起请求
― file path 是返回图片名称
― item_completed 返回item,将其返回给下一个即将被执行的管道类
那具体代码是什么样的呢,首先我们需要在pipelines.py文件中,导入ImagesPipeline类,然后重写上述所说的3个方法:
from scrapy.pipelines.images import ImagesPipelineimport scrapyimport os class ImgsPipLine(ImagesPipeline): def get_media_requests(self, item, info): yield scrapy.Request(url = item["img_src"],meta={"item":item}) #返回图片名称即可 def file_path(self, request, response=None, info=None): item = request.meta["item"] print("########",item) filePath = item["img_name"] return filePath def item_completed(self, results, item, info): return item方法定义好后,我们需要在settings.py配置文件中进行设置,一个是指定图片保存的位置IMAGES_STORE = "D:ImgPro",然后就是启用"ImgsPipLine"管道,
ITEM_PIPELINES = { "imgPro.pipelines.ImgsPipLine": 300, #300代表优先级,数字越小优先级越高}设置完成后,我们运行程序后就可以看到"D:ImgPro"下保存成功的图片。

完整代码如下:
spider文件代码:
# -*- coding: utf-8 -*-import scrapyfrom imgPro.items import ImgproItem class ImgSpider(scrapy.Spider): name = "img" allowed_domains = ["www.521609.com"] start_urls = ["http://www.521609.com/daxuemeinv/"] def parse(self, response): #解析图片地址和图片名称 li_list = response.xpath("//div[@class="index_img list_center"]/ul/li") for li in li_list: item = ImgproItem() item["img_src"] = "http://www.521609.com/" + li.xpath("./a[1]/img/@src").extract_first() item["img_name"] = li.xpath("./a[1]/img/@alt").extract_first() + ".jpg" # print("***********") # print(item) yield itemitems.py文件
import scrapy class ImgproItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() img_src = scrapy.Field() img_name = scrapy.Field()
pipelines.py文件
from scrapy.pipelines.images import ImagesPipelineimport scrapyimport osfrom imgPro.settings import IMAGES_STORE as IMGS class ImgsPipLine(ImagesPipeline): def get_media_requests(self, item, info): yield scrapy.Request(url = item["img_src"],meta={"item":item}) #返回图片名称即可 def file_path(self, request, response=None, info=None): item = request.meta["item"] print("########",item) filePath = item["img_name"] return filePath def item_completed(self, results, item, info): return itemsettings.py文件
import randomBOT_NAME = "imgPro" SPIDER_MODULES = ["imgPro.spiders"]NEWSPIDER_MODULE = "imgPro.spiders" IMAGES_STORE = "D:ImgPro" #文件保存路径LOG_LEVEL = "WARNING"ROBOTSTXT_OBEY = False#设置user-agentUSER_AGENTS_LIST = [ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1", "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5", "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24" ]USER_AGENT = random.choice(USER_AGENTS_LIST)DEFAULT_REQUEST_HEADERS = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en", # "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36", "User-Agent":USER_AGENT} #启动pipeline管道ITEM_PIPELINES = { "imgPro.pipelines.ImgsPipLine": 300,}关于"Python中scrapy下载保存图片的方法"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Python中scrapy下载保存图片的方法"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
图片
方法
文件
名称
管道
代码
知识
优先级
内容
地址
数据
篇文章
成功
三个
代表
价值
位置
就是
所说
操作简单
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
究车互联网络技术
go可以开发数据库吗
网络安全两库两清单制度
网络技术基础结课总结
开房查询记录 数据库
计算机网络安全是的含义
sql 链接服务器连不上
荆门专业的软件开发
基础数据库表
联合国网络安全保障
覆盖已经筛选的数据库
博山mes管理软件开发公司
网络安全快乐
易安卓服务器
蹄听网络技术有限公司
广州李子网络技术有限公司
ntp服务器同步电脑时间
数据库查看某段时间段
steam 连不上服务器
科研数据库技术入股
psql删除数据库语句
dz数据库配置
互联网科技发展
结转软件开发成本
网络安全专题教育工作总结
如何获得网络安全知识
互联网科技公司如何开发票
数据库在java的作用
我的世界纪念服主的服务器
韩国国家网络安全法案