影刀RPA进阶教程图片批量下载与本地管理——从URL列表到结构化文件夹的完整方案影刀RPA批量下载图片是电商运营的高频需求。采集了1000条商品数据每条有5张图片手动下载完全不现实。本文给出完整的图片批量下载方案包括文件命名、目录组织、失败重试和去重处理。作者林焱 | 影刀RPA进阶系列为什么不能直接用浏览器右键保存手动右键保存图片的问题1000张图片右键1000次不是人干的活文件名全是乱码hash值不知道对应哪个商品图片保存位置混乱找起来靠运气自动化下载的目标按商品ID建文件夹图片以商品ID_序号命名失败的URL记录到日志事后补下载已下载的图片不重复下载断点续传拼多多店群自动化上架方案方案一直接用 Python requests 下载推荐适合大批量、对速度有要求的场景。importrequestsimportosimporttimeimportrandomfrompathlibimportPathdefdownload_image(url,save_path,timeout10): 下载单张图片 返回True/FalseFalse时返回错误信息 headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36,Referer:https://www.xxx.com# 替换为目标网站的域名}try:responserequests.get(url,headersheaders,timeouttimeout)ifresponse.status_code200:# 确保目标目录存在Path(save_path).parent.mkdir(parentsTrue,exist_okTrue)withopen(save_path,wb)asf:f.write(response.content)# 验证文件大小小于1KB可能是错误图片ifos.path.getsize(save_path)1024:os.remove(save_path)returnFalse,文件过小可能是错误图片returnTrue,Noneelse:returnFalse,fHTTP{response.status_code}exceptExceptionase:returnFalse,str(e)批量下载主逻辑importpandasaspdimportosimporttimeimportrandomdefbatch_download(excel_path,save_dir,delay_range(0.5,2.0)): 从Excel读取URL列表批量下载图片 Excel格式商品ID | 图片URL1 | 图片URL2 | 图片URL3 dfpd.read_excel(excel_path)# 读取已下载记录断点续传downloaded_logdownloaded.txtdownloaded_setset()ifos.path.exists(downloaded_log):withopen(downloaded_log,r)asf:downloaded_setset(f.read().splitlines())failed_list[]success_count0for_,rowindf.iterrows():product_idstr(row[商品ID])# 遍历每个图片URL列fori,colinenumerate([图片URL1,图片URL2,图片URL3],1):urlstr(row.get(col,)).strip()ifnoturlorurlnan:continue# 跳过已下载ifurlindownloaded_set:continue# 构建保存路径exturl.split(.)[-1].split(?)[0]# 获取扩展名ifext.lower()notin[jpg,jpeg,png,webp,gif]:extjpgfilenamef{product_id}_{i:02d}.{ext}save_pathos.path.join(save_dir,product_id,filename)# 下载success,errordownload_image(url,save_path)ifsuccess:success_count1# 记录已下载withopen(downloaded_log,a)asf:f.write(url\n)else:failed_list.append({商品ID:product_id,图片序号:i,URL:url,错误:error})# 随机延时避免过快请求time.sleep(random.uniform(*delay_range))# 保存失败列表iffailed_list:pd.DataFrame(failed_list).to_excel(download_failed.xlsx,indexFalse)print(f下载完成成功{success_count}张失败{len(failed_list)}张)returnsuccess_count,len(failed_list)方案二用影刀「下载文件」指令适合少量如果图片数量不多100张以内直接用影刀内置的下载指令更简单循环读取Excel每一行: product_id 当前行[商品ID] image_url 当前行[图片URL] # 构建文件名 save_name product_id _01.jpg save_path 下载目录 / save_name # 调用内置下载指令 下载文件 URLimage_url 保存路径save_path # 记录到Excel 写入当前行下载路径 save_path 等待随机时间 500-1500ms文件夹结构设计推荐的目录结构downloads/ ├── 2026-06-11/ # 按日期分组方便找到某天采集的数据 │ ├── P001234/ # 商品ID作为目录名 │ │ ├── P001234_01.jpg # 第1张图 │ │ ├── P001234_02.jpg # 第2张图 │ │ └── P001234_03.jpg # 第3张图 │ └── P001235/ │ └── P001235_01.jpg ├── 2026-06-12/ │ └── ... download_failed.xlsx # 失败记录 downloaded.txt # 已下载URL记录断点续传用常见问题问题图片下载了但打不开原因服务器返回了一个HTML错误页面如登录跳转而不是图片。解决检查文件大小小于5KB的大概率不是正常图片检查文件头用16进制查看是不是JPEG/PNG魔数。问题部分图片403 ForbiddenTEMU店群如何管理运营原因服务器有防盗链校验Referer头。解决在请求头里加上正确的Referer值为目标网站的域名。问题下载太快被封IP解决增大随机延时到 2-5秒使用代理IP轮换每批下载完休眠5-10分钟。小结批量下载图片的核心要点断点续传记录已下载URL跳过重复随机延时模拟人工浏览速度失败记录不要默默丢弃留下来补下载目录命名有规律按商品ID/日期方便后续使用内容标签影刀RPA / 图片下载 / 批量处理 / requests / 断点续传作者林焱本文是「影刀RPA从零到实战」系列文章之一持续更新实操技巧与避坑经验。