news 2026/6/10 6:58:25

影刀RPA实操指南_图片批量下载与自动分类管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
影刀RPA实操指南_图片批量下载与自动分类管理

影刀RPA实操指南:图片批量下载与自动分类管理

做电商运营、内容运营的同学,经常需要从网页上批量下载图片——商品主图、详情图、素材图、竞品截图。

手动操作就是"右键→另存为→选文件夹→确定",重复几百次。用影刀能把这个过程压缩到 3 分钟。

这篇文章讲清楚:如何从网页批量下载图片、如何自动命名、如何按规则分类存放。


一、下载图片的两种思路

思路怎么做适用场景
浏览器模拟点击找到图片→右键→保存图片是页面渲染出来的,URL不好拿
获取URL直接下载拿到src→HTTP下载图片链接规律明确,一次拿几百张

大多数情况下,方案二(获取URL直接下载)更高效。一个 HTTP 请求就能下载一张图,不需要浏览器渲染。

但如果图片是 canvas 画出来的,或者需要登录态才能访问,就只能用方案一。

本文两种方案都讲。


二、方案一:浏览器模拟下载(通用但慢)

# 步骤1:打开图片页面打开网页("https://detail.tmall.com/item.htm?id=xxx")等待元素出现("商品图片区域",5)# 步骤2:获取所有缩略图元素列表获取相似元素列表("//div[@class='img-item']/img")->图片列表# 步骤3:创建保存目录(用当天日期)创建文件夹("D:\图片下载\天猫\{今天的日期}")遍历列表(图片列表,当前图片,索引):[video(video-FileSDgq-1781009069464)(type-csdn)(url-https://live.csdn.net/v/embed/525000)(image-https://v-blog.csdnimg.cn/asset/23da3fe1f67a47106d725406cfde9a97/cover/Cover0.jpg)(title-拼多多店群自动化上架方案)]# 点击缩略图,让大图显示点击元素(当前图片)等待(1)# 在大图上右键,选"另存为"右键点击元素("大图元素")等待(0.5)# 注意:右键菜单是系统级的,影刀不好操作# 更推荐方案二

方案一的痛点:右键菜单是浏览器UI,影刀能点到"另存为"但再往下的系统保存对话框,影刀就控制不了了。所以这个方案只在没有更好办法的时候用。

更好的做法:先用方案一拿到图片 URL,再用方案二下载。


三、方案二:获取URL直��下载(推荐)

3.1 找到图片的真实URL

# 步骤1:打开列表页打开网页("https://example.com/products")等待元素出现("商品列表",5)# 步骤2:获取所有商品卡片中的图片URL获取相似元素列表("//div[@class='product-card']//img")->图片元素列表 创建文件夹("D:\图片下载\商品图")遍历列表(图片元素列表,当前图片,索引):# 获取图片的 src 属性获取元素属性(当前图片,"src")->图片URL# 跳过空URL如果 图片URL==""或 图片URL==None:继续下一次循环# 通过 Python 下载Python代码:# Python代码块开始importrequestsimportos img_url=变量_图片URL save_dir=r"D:\图片下载\商品图"index=变量_索引# 处理相对URL转绝对URLifimg_url.startswith("//"):img_url="https:"+img_urlelifimg_url.startswith("/"):img_url="https://example.com"+img_url# 提取文件扩展名ext=img_url.split(".")[-1].split("?")[0]ifextnotin["jpg","jpeg","png","gif","webp"]:ext="jpg"filename=f"商品_{index+1}.{ext}"filepath=os.path.join(save_dir,filename)try:headers={"User-Agent":"Mozilla/5.0 ...","Referer":"https://example.com/"}resp=requests.get(img_url,headers=headers,timeout=10)resp.raise_for_status()withopen(filepath,"wb")asf:f.write(resp.content)print(f"下载成功:{filename}")exceptExceptionase:print(f"下载失败:{filename}, 错误:{e}")# Python代码块结束

3.2 关键细节

URL 可能是相对路径

网页里的src经常是//img.example.com/a.jpg/images/a.jpg,不是完整链接。下载前要补全成https://...

# 补全URL的逻辑如果 图片URL 以"//"开头:图片URL="https:"+图片URL 否则 如果 图片URL 以"/"开头:图片URL="https://目标域名"+图片URL

有些图片是懒加载的

src可能是占位图,真实图片在data-srcdata-original属性里。

# 优先取真实图片属性获取元素属性(当前图片,"data-src")->src1 获取元素属性(当前图片,"data-original")->src2 获取元素属性(当前图片,"src")->src3 真实URL=src1 或 src2 或 src3

Referer 防盗链

有些图片加了 Referer 校验,直接在浏览器外下载会返回 403。需要在请求头里加 Referer。

headers={"Referer":"https://来源页面的域名.com/","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}

四、自动命名与分类存储

4.1 按商品名命名

# 图片用商品名+序号命名Python代码:product_name=变量_商品名.replace("/","_").replace("\\","_")filename=f"{product_name}_{index+1}.jpg"

必须做文件名安全处理:商品名里可能有/\:*这些 Windows 不允许用在文件名里的字符。

# 文件名安全处理函数defsafe_filename(name):invalid_chars=['/','\\',':','*','?','"','<','>','|']forcininvalid_chars:![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8dedb1ceec694e62b3c67db367c669c1.png#pic_center)name=name.replace(c,'_')returnname[:100]# 文件名不要太长

4.2 按分类自动建文件夹

# 按商品类目分文件夹Python代码:category=变量_类目# 如 "连衣裙", "T恤", "裤子"save_dir=f"D:\\图片下载\\{category}\\"os.makedirs(save_dir,exist_ok=True)

4.3 按采集时间分文件夹

Python代码:fromdatetimeimportdatetime today=datetime.now().strftime("%Y-%m-%d")save_dir=f"D:\\图片下载\\{today}\\"[video(video-vBR0GeuQ-1781009076000)(type-csdn)(url-https://live.csdn.net/v/embed/524993)(image-https://v-blog.csdnimg.cn/asset/a547123d88ad712dccba346c9217e237/cover/Cover0.jpg)(title-TEMU店群如何管理运营?)]os.makedirs(save_dir,exist_ok=True)

五、完整实战:拼多多商品主图批量下载

# 拼多多商品主图批量下载完整流程打开网页("https://mobile.yangkeduo.com/search_result.html?search_key=连衣裙")等待元素出现("商品列表",5)# 获取所有商品卡片获取相似元素列表("//div[contains(@class,'goods-item')]")->商品列表 创建文件夹("D:\拼多多图片\连衣裙\2026-06-09")遍历列表(商品列表,当前商品,idx):商品名=获取元素文本(当前商品//商品名称区域)图片元素=获取元素(当前商品//img)获取元素属性(图片元素,"src")->URL 如果 URL=="":继续下一次循环# 下载图片Python代码:importrequests,os,re name=变量_商品名[:30]name=re.sub(r'[\\/:*?"<>|]','_',name)url=变量_URLifurl.startswith("//"):url="https:"+url save_path=rf"D:\拼多多图片\连衣裙\2026-06-09\{name}.jpg"headers={"User-Agent":"Mozilla/5.0 ...","Referer":"https://mobile.yangkeduo.com/"}resp=requests.get(url,headers=headers,timeout=15)withopen(save_path,"wb")asf:f.write(resp.content)print(f"[{idx+1}]{name}下载完成")# Python代码块结束输出日志(f"累计下载:{idx+1}个商品,已下载{idx+1}张")

六、下载速度控制与防封

控制请求间隔

# 每下载3张休息1秒,避免触发限流Python代码:importtimeifidx%3==0:![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3e1aaa9011a44691a3e5e192a0260f82.png#pic_center)time.sleep(1)

随机间隔更像人

Python代码:importtime,random time.sleep(random.uniform(0.5,1.5))# 0.5~1.5秒随机

七、易错速查

问题原因解决
下载的图片只有1KB下了占位图检查data-src/data-original属性
返回403Referer防盗链在请求头里加Referer
文件名保存失败商品名含非法字符safe_filename处理
有些图片跳过了src为空先判断URL非空再下载
URL是相对路径没补全协议和域名判断开头补全https://

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 6:57:26

Java 并发基础:进程、线程、线程状态、synchronized、volatile 一篇讲清

Java 后端面试里&#xff0c;并发几乎是必问模块。很多同学一开始学并发时&#xff0c;会觉得概念很多&#xff1a;进程、线程、线程状态、线程安全、synchronized、volatile、原子性、可见性、有序性……这些词单独看都不难&#xff0c;但如果没有串起来&#xff0c;很容易背得…

作者头像 李华
网站建设 2026/6/10 6:51:31

03_一个错字引发的百万损失

一个错字引发的百万损失&#xff1a;制版行业因人工漏检导致的真实事故案例 引子&#xff1a;一字千金&#xff0c;真的不是形容词 我们正处在一个过渡期。 什么是对版检测&#xff1f; 简单说&#xff0c;就是把印刷样张和原始设计模板进行逐项比对——文字有没有错漏&#…

作者头像 李华
网站建设 2026/6/10 6:51:04

普惠金融如何助力中小企业出海?从跨境收单到全球增长的新机会

在全球化的浪潮与数字经济的交汇点&#xff0c;中小企业正迎来前所未有的出海机遇。跨境电商、SaaS服务、数字内容、社交娱乐……越来越多的中国中小企业开始将目光投向海外&#xff0c;试图在全球市场中寻找第二增长曲线。然而&#xff0c;机遇背后&#xff0c;挑战同样真实而…

作者头像 李华
网站建设 2026/6/10 6:50:02

多设备协同计算深度实战:昇腾NPU集群编程与资源调度完全指南

前言 在昇腾CANN软件栈的完整生态中&#xff0c;多设备协同计算是实现大规模并行计算的关键技术。对于需要在多昇腾NPU上运行复杂模型的开发者而言&#xff0c;掌握协同计算的编程方法和资源调度策略是充分发挥昇腾集群性能的核心技能。多设备协同涉及计算划分、数据分发、结果…

作者头像 李华
网站建设 2026/6/10 6:49:48

2026年主流AI标书评标软件实测与选型指南

摘要 招投标竞争进入“读秒”时代&#xff0c;AI评标正从招标人一侧加速渗透。对投标人而言&#xff0c;能否在封标前像评委一样“预演”评审过程&#xff0c;直接决定中标率。本文从投标人看评标的真实痛点出发&#xff0c;深度解析AI评标软件的运作逻辑&#xff0c;实测市面主…

作者头像 李华
网站建设 2026/6/10 6:48:17

ASP File:深入解析Active Server Pages文件及其应用

ASP File:深入解析Active Server Pages文件及其应用 引言 ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,它允许开发人员结合HTML代码、脚本语言(如VBScript或JScript)以及数据库访问,创建动态交互式网页。本文将深入探讨ASP文件的结构、工作原理及其在…

作者头像 李华