十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

影刀RPA实现京东商品视频批量采集:从手册到自动化实战

影刀RPA实现京东商品视频批量采集:从手册到自动化实战 简介影刀RPA京东视频采集项目面向RPA自动化开发人群提供一套可运行的京东达人视频批量采集方案。项目通过模拟浏览器操作访问达人视频首页提取视频地址并自动下载同时将标题、发布时间、作者等信息整理为Excel表格有效解决人工逐条采集、汇总效率低的问题。包内包含开发环境配置说明与软件部署指南适合自动化测试、数据采集等场景的开发者学习与二次开发。资源共8个文件压缩包仅9KB核心逻辑为Python脚本py并提供csv数据模板、html演示界面、txt说明文档以及3个mp4演示视频覆盖采集、下载、存储、展示等主要环节。目前已有114人学习下载可作为影刀RPA实操入门与电商视频采集项目参考。通过该项目可掌握页面元素分析、自动化文件下载、Excel数据写入等关键技巧并可获得可直接修改运行的工程化示例对需要批量采集或系统学习RPA的开发者具有较强参考价值。 做电商运营或者内容素材整理的朋友大概率都经历过这种事想在京东上把竞品的商品视频扒下来做参考一个品类几十上百个SKU一个个打开页面、播放视频、另存为点到手酸还容易漏。写爬虫脚本吧京东的反爬和风控不是吃素的验证码、UA校验、签名过期轮番上阵光是维护成本就比手工还高。这个项目就是用影刀RPA做了一套京东视频采集工具输入商品链接或关键词自动打开页面、定位视频元素、提取视频直链并下载落盘全程不用盯着屏幕。整套实现思路、核心代码和踩坑记录都整理在下面适合有影刀RPA基础但没怎么写过完整采集项目的朋友也适合想用RPA替代重复下载工作的运营同学。1. 为什么用影刀RPA做京东视频采集1.1 真实需求内容素材采集是高频脏活很多公司做电商素材库、竞品分析、短视频参考都需要收集京东商品页里的主图视频。这活儿看起来简单真正做起来才知道有多磨人。一个商品详情页的视频可能有两三段有的藏在主图轮播里有的在详情页中部手动采集时要不断重复打开页面、等加载、找视频、点播放、下载这一套动作。如果一个月要收集几百条商品视频光鼠标点击就上万次不仅浪费时间还容易因为疲劳漏掉链接。更麻烦的是这类需求往往不是一次性任务。竞品上新、活动页面更换素材就需要定期更新。如果每次都用人工去扫一遍成本会无限放大。当时我接到这个需求时第一反应是写Python爬虫但分析后发现几个问题商品页的视频地址很多是JS动态渲染后才有直接请求HTML拿不到视频直链带签名又会过期高频请求还容易触发验证码。与其跟反爬机制硬碰硬不如让RPA像真人一样去操作浏览器反而更稳。1.2 采集方案对比手工、爬虫、RPA怎么选我梳理了三种可选方案最终选择了影刀RPA各有各的适用场景方案上手门槛稳定性维护成本适用场景手工采集最低低容易漏高纯人力几十条以内的偶发需求Python爬虫高需懂逆向中受反爬影响高封IP/验证码常折腾批量大、反爬弱、长期运行影刀RPA低可视化拖拽高模拟人工操作低流程清晰可改中小批量、页面动态渲染、需要灵活调整影刀RPA最核心的优势在于它操作的是真实浏览器从页面结构到交互行为都跟人工一致很大程度上绕开了解析接口、处理签名这些爬虫需要做的脏活。对京东这类动态渲染严重、反爬机制复杂的站点RPA反而比爬虫更省心。同时影刀RPA对新手友好可视化界面里拖拖拽拽就能搭出主流程需要高级处理时还能切到Python模式补充逻辑扩展性并不差。2. 采集方案整体设计与核心流程2.1 整体采集链路设计这套采集工具的设计目标很明确输入一批商品链接自动产出本地视频文件并生成一份采集结果记录表。整个流程可以拆成五步读取待采集的商品链接列表从Excel或txt读取也支持手动输入打开商品页等待关键元素加载完成定位视频元素获取视频直链地址下载视频到本地按规则命名保存记录结果失败的重试或标记继续处理下一条这个链路看着简单但每一步都有细节要处理。比如等待关键元素加载这一步京东商品页的DOM结构复杂图片、视频、异步接口可能在不同时间才渲染完如果没有合理的等待机制元素定位失败率会非常高。所以整个流程的核心不是能不能跑通一次而是批量跑下来稳定性如何。2.2 关键技术选型怎么拿视频地址采集工具的关键在于拿到视频直链。商品页里的视频通常由HTML5的video标签承载直链地址就在对应的src属性里有的还会拆成video source子标签。定位元素时优先用页面结构选择器而不是图像识别因为浏览器里的页面元素结构相对稳定而且能直接拿到属性值。图像识别适合处理验证码弹窗这类不知道元素结构的场景但用在这里不够精确。京东的视频直链一般指向m.360buyimg.com或者京东视频云地址URL里通常带着签名参数有时效性。这意味着拿到地址后最好立刻下载不能把地址存下来隔几天再下载。另外部分商家的视频是放在自建播放器里的可能是iframe嵌入了第三方视频平台这种情况下要先切入iframe才能定位到video元素这也是很多新手容易卡住的地方。3. 项目实现与实操过程3.1 环境准备影刀RPA安装与Python版本设置开发前先准备好环境。影刀RPA客户端直接从官网或影刀RPA商城下载安装安装过程一路默认就行。装完后我做的第一件事是检查Python解释器配置因为后续下载视频、读写文件要用到requests、pandas这类第三方库。影刀RPA设置Python版本的操作是在客户端右上角设置里找到高级设置或者Python解释器配置选择本机已安装的Python 3.x版本。需要注意这里有两个坑切换Python版本后必须重启影刀RPA客户端否则依赖库识别不到代码运行时会报ModuleNotFoundError如果本机没装Python直接用影刀内置的Python环境也可以但给内置环境装第三方库要用命令行建议优先配置好本机Python并指向它我的开发环境是Windows 10本机Python 3.9.13影刀RPA版本是2.x系列配置好后在影刀的Python模式里执行import requests验证一下能正常导入说明环境OK。顺便建议把pip源换成国内镜像源安装依赖会快很多。3.2 核心流程实现从打开商品页到定位视频流程主框架用影刀RPA的可视化指令搭建具体步骤和关键参数如下打开网页指令目标地址填商品链接比如形如https://item.jd.com/100012043978.html的URL等待元素出现指令选择器填video超时时间建议设10秒如果视频是异步加载这个等待步骤能拦住大部分定位失败问题滚动到元素指令先滚动到视频所在区域触发懒加载必要时模拟一次鼠标滚轮获取元素属性指令目标填video标签属性名填src把结果存到变量video_url里对于src为空的情况需要改用video source标签再取一次属性。如果页面里的视频是多个用(//video)[1]这种XPath表达式加索引逐个取。这里有个经验京东主图视频有时候只有点击播放按钮后才会把真实的video地址写入src所以遇到src为空时可以先模拟点击视频区域的播放按钮再重新获取属性值成功率会明显提升。3.3 视频下载模块处理Referer和文件命名拿到video_url之后下载环节我单独写了一个Python模块方便在影刀RPA的调用Python脚本指令里复用。这个模块的重点是请求头尤其是Referer必须带上京东商品页的域名否则很多CDN会返回403。# -*- coding: utf-8 -*- # video_downloader.py # 影刀RPA Python模式可直接调用 import requests import os import time HEADERS { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, Referer: https://item.jd.com/, } def download_video(video_url, save_path): 下载视频到本地返回值表示是否成功 try: resp requests.get(video_url, headersHEADERS, timeout30) if resp.status_code 200: with open(save_path, wb) as fp: fp.write(resp.content) return True else: print(f下载失败状态码: {resp.status_code}) return False except Exception as e: print(f下载异常: {e}) return False下载路径的命名规则我建议用SKU ID 商品名截断 时间戳的格式比如100012043978_榨汁机_202501201530.mp4。SKU ID可以从商品链接里正则提取商品名可以再从页面取一次title元素时间戳用Python的time生成。这样命名的好处是SKU保证来源可溯商品名方便人识别时间戳避免重复。3.4 批量循环读取链接、异常重试、结果落表批量循环是整套工具的骨架我用影刀的循环指令配合Excel/文本文件实现。首先建一个links.xlsx第一列放商品链接第二列放备注。程序每次读取一行处理完后在当前行后面标记状态成功、失败原因、下载耗时、文件保存路径。异常重试逻辑我放在循环体内部下载失败先不急着结束重试2次每次间隔3秒。如果视频地址取不到先重新执行滚动到元素和获取元素属性再不行就记录失败原因跳到下一个链接。实测下来300条链接一次性跑完成功率大约95%剩下的5%基本是页面结构特殊的商品第二轮手动补采即可。整个流程跑完还会生成一份result.xlsx包含每个链接的处理结果。这样即便有遗漏也能快速定位到具体是哪条链接出了问题而不是一头雾水重新跑一遍。4. 常见问题与排查技巧实录4.1 视频元素定位失败动态加载和懒加载最常遇到的问题是影刀RPA报找不到元素而人眼打开页面明明能看到视频。原因基本是页面还没加载完或者视频区域没滚动到。解决思路有两个方向把等待元素出现的超时时间从默认的3秒加到10秒以上必要时用等待元素消失等待loading遮罩消失先执行滚动到元素再取属性模拟真实用户把页面滚到视频区域的操作一次我们采集某个品类的多个商品发现同一个模板下的链接有20%定位不到视频。排查后发现这批商品页面里的视频元素类名跟常规模板不一样XPath选择器需要从video改为具体到div.video-player video。这提醒我一个经验写选择器时优先用标签名这类通用条件少用页面里的临时类名不同模板兼容性会更好。4.2 下载的视频只有几KB或直接403这也是高频问题。文件只有几KB说明下载到的不是完整视频而是错误页或重定向后的HTML文本。403基本可以断定是请求头问题。具体排查顺序建议检查User-Agent是否完整缺UA的请求很容易被拦截检查Referer是否设置为京东商品页域名很多CDN要校验来源检查视频链接是否还带有效签名京东视频直链有时效性拿到地址后超过几分钟再下载就失效如果业务上确实需要先采地址、后批量下载我建议设置一个中间存储环节把视频地址和商品信息写入sqlite或Excel后续下载时重新打开一次页面换新地址而不是拿过期地址硬试。这个方案实测有效避免了大量无效请求。4.3 影刀RPA运行时浏览器被切到后台导致中断影刀RPA操作的是真实浏览器如果采集过程中突然弹出一个对话框或者页面新开了标签页未切换到正确的浏览器对象流程就会卡住。排查后发现问题往往出在打开网页指令生成的浏览器实例被页面上的跳转事件干扰。解决办法有两个流程开头锁定浏览器窗口用将浏览器置于前台指令把目标浏览器固定每处理一条链接之前确认当前浏览器上下文避免在多个标签页之间串页这条经验特别重要。我们第一次跑批量任务时就是因为某条链接自动弹了新标签页导致后面所有链接全部都操作在同一个错误页面上等发现时已经跑掉了一大半数据只能重来。4.4 Python环境相关错误排查运行时报ModuleNotFoundError: No module named requests多数是影刀RPA没有指向正确的Python解释器或者切换版本后没重启。另一个坑是影刀内置Python环境和本机Python混用导致第三方库安装到了错误的环境里。我现在的做法是统一在本机Python里装依赖然后影刀RPA始终指向本机Python这样跟命令行执行的逻辑一致排查起来也简单。4.5 常见问题速查表现象可能原因解决方案找不到video元素页面未加载完、懒加载未触发加长等待时间先滚动到元素再定位视频地址为空播放器初始化后才写入src模拟点击播放按钮后再取属性下载403缺Referer/UA或链接过期补全请求头拿新地址再下载下载文件几KB下载到错误页或重定向HTML检查响应内容确认不是200但HTML流程执行错乱新标签页导致上下文切换锁定浏览器窗口每条链接前确认上下文导入模块失败Python解释器指向错误设置Python版本并重启客户端5. 个人实操心得这套工具的边界与扩展整套工具从最初的手工点击到搭出第一版可用脚本再到稳定跑完300条链接的批量任务前后大概花了两天。我的体会有三点第一RPA项目的重点不是能不能实现而是异常处理够不够稳批量场景下每一条链接都可能有特殊情况容错和重试机制必须前置设计第二视频直链的时效性问题要特别留心地址到手尽快下载或者设计成先采集后换新地址再下载的流程第三影刀RPA的可视化指令和Python代码不是二选一而是配合使用页面操作交给指令流复杂数据处理和请求下载交给代码分工明确才不容易出问题。这个采集工具后续我还做了一些扩展比如把采集结果自动同步到团队素材库的数据库里每天定时跑一次增量采集再通过企业微信机器人把失败链接发给负责人。基本思路是把RPA当作采集执行器外围用Python做数据清洗、存储和通知这让整个流程从一次性脚本变成可持续运行的小工具。如果你也在做类似的商品素材采集需求建议按这个思路先跑通一条链接再把异常处理一点点加上去最后才是批量化和定时调度循序渐进会少踩很多坑。本文还有配套的精品资源点击获取
返回列表