影刀RPA实操指南_图片批量下载与自动分类管理 影刀RPA实操指南图片批量下载与自动分类管理做电商运营、内容运营的同学经常需要从网页上批量下载图片——商品主图、详情图、素材图、竞品截图。手动操作就是右键→另存为→选文件夹→确定重复几百次。用影刀能把这个过程压缩到 3 分钟。这篇文章讲清楚如何从网页批量下载图片、如何自动命名、如何按规则分类存放。一、下载图片的两种思路思路怎么做适用场景浏览器模拟点击找到图片→右键→保存图片是页面渲染出来的URL不好拿获取URL直接下载拿到src→HTTP下载图片链接规律明确一次拿几百张大多数情况下方案二获取URL直接下载更高效。一个 HTTP 请求就能下载一张图不需要浏览器渲染。但如果图片是 canvas 画出来的或者需要登录态才能访问就只能用方案一。本文两种方案都讲。二、方案一浏览器模拟下载通用但慢# 步骤1打开图片页面打开网页(https://detail.tmall.com/item.htm?idxxx)等待元素出现(商品图片区域,5秒)# 步骤2获取所有缩略图元素列表获取相似元素列表(//div[classimg-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[classproduct-card]//img)-图片元素列表 创建文件夹(D:\图片下载\商品图)遍历列表(图片元素列表,当前图片,索引):# 获取图片的 src 属性获取元素属性(当前图片,src)-图片URL# 跳过空URL如果 图片URL或 图片URLNone:继续下一次循环# 通过 Python 下载Python代码:# Python代码块开始importrequestsimportos img_url变量_图片URL save_dirrD:\图片下载\商品图index变量_索引# 处理相对URL转绝对URLifimg_url.startswith(//):img_urlhttps:img_urlelifimg_url.startswith(/):img_urlhttps://example.comimg_url# 提取文件扩展名extimg_url.split(.)[-1].split(?)[0]ifextnotin[jpg,jpeg,png,gif,webp]:extjpgfilenamef商品_{index1}.{ext}filepathos.path.join(save_dir,filename)try:headers{User-Agent:Mozilla/5.0 ...,Referer:https://example.com/}resprequests.get(img_url,headersheaders,timeout10)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 以//开头:图片URLhttps:图片URL 否则 如果 图片URL 以/开头:图片URLhttps://目标域名图片URL有些图片是懒加载的src可能是占位图真实图片在data-src或data-original属性里。# 优先取真实图片属性获取元素属性(当前图片,data-src)-src1 获取元素属性(当前图片,data-original)-src2 获取元素属性(当前图片,src)-src3 真实URLsrc1 或 src2 或 src3Referer 防盗链有些图片加了 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(\\,_)filenamef{product_name}_{index1}.jpg必须做文件名安全处理商品名里可能有/、\、:、*这些 Windows 不允许用在文件名里的字符。# 文件名安全处理函数defsafe_filename(name):invalid_chars[/,\\,:,*,?,,,,|]forcininvalid_chars:![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8dedb1ceec694e62b3c67db367c669c1.png#pic_center)namename.replace(c,_)returnname[:100]# 文件名不要太长4.2 按分类自动建文件夹# 按商品类目分文件夹Python代码:category变量_类目# 如 连衣裙, T恤, 裤子save_dirfD:\\图片下载\\{category}\\os.makedirs(save_dir,exist_okTrue)4.3 按采集时间分文件夹Python代码:fromdatetimeimportdatetime todaydatetime.now().strftime(%Y-%m-%d)save_dirfD:\\图片下载\\{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_okTrue)五、完整实战拼多多商品主图批量下载# 拼多多商品主图批量下载完整流程打开网页(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]namere.sub(r[\\/:*?|],_,name)url变量_URLifurl.startswith(//):urlhttps:url save_pathrfD:\拼多多图片\连衣裙\2026-06-09\{name}.jpgheaders{User-Agent:Mozilla/5.0 ...,Referer:https://mobile.yangkeduo.com/}resprequests.get(url,headersheaders,timeout15)withopen(save_path,wb)asf:f.write(resp.content)print(f[{idx1}]{name}下载完成)# Python代码块结束输出日志(f累计下载:{idx1}个商品已下载{idx1}张)六、下载速度控制与防封控制请求间隔# 每下载3张休息1秒避免触发限流Python代码:importtimeifidx%30:![在这里插入图片描述](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学习手册》系列文章之一内容源于实操经验的整理与分享。