ARTICLE DETAIL

资讯详情

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

影刀RPA实操指南:唯品会品牌特卖信息采集与折扣监控

影刀RPA实操指南:唯品会品牌特卖信息采集与折扣监控 影刀RPA实操指南唯品会品牌特卖信息采集与折扣监控唯品会的品牌特卖折扣随时在变靠人工盯页面盯不住等你想买的时候价格早就回去了。这篇文章用影刀RPA把唯品会特卖页的商品信息、折扣价批量采集到Excel再配一个定时任务每天自动跑一遍降价了自动通知你。我自己非技术出身这套流程实操了两年多中间踩过的坑会一并写清楚。先说清楚整体思路一共四步打开特卖页面并捕获商品列表元素、用循环把每件商品的标题价格折扣读出来、写入Excel并和昨天的价格做对比、配一个定时任务每天自动执行。全程不需要写一行代码用影刀RPA自带的指令就能拼出来。环境准备与影刀RPA安装第一步是装软件。去影刀官网下载安装包双击安装第一次启动会让你注册账号社区版免费每天有30分钟运行时长练手完全够用。如果你采集的页面比较多跑一轮经常超过30分钟就要考虑创业版运行时长没有限制。装完软件还有一步很多人漏掉浏览器插件。打开影刀客户端左侧菜单进设置找到浏览器插件把你用的Chrome或Edge插件装上。没装插件的后果是网页元素全部捕获不到我当时就因为这个卡了一晚上以为是自己操作错了。检查项在哪里看没搞定的后果客户端安装桌面图标无法开发流程浏览器插件设置→浏览器插件元素捕获不到账号登录右上角头像流程无法运行装好插件后浏览器右上角会出现影刀图标点亮状态才算生效。建议日常用Chrome和影刀的兼容性最稳。元素定位四合一捕获、XPath、CSS与正则唯品会页面的商品是动态加载的定位是整个流程的地基。影刀RPA里定位有四套工具元素捕获、XPath、CSS选择器、正则表达式实际用下来九成场景靠前两个就够。先说元素捕获。点击指令面板里点击元素指令的元素选择框再点捕获新元素按钮浏览器会自动跳到目标页面鼠标移上去出现橙色边框对准商品卡片点一下就捕获成功。但直接捕获到的默认路径里带有动态ID换个楼层或者明天再跑就失效了这是新手最常见的坑。正确做法是捕获之后点开元素属性切换到XPath编辑把路径改成手写的稳定表达式。下面是我实际在用的几条# 捕获元素唯品会商品卡片列表楼层内所有商品 //div[contains(class,goods-item)] # 捕获元素单个商品的现售价 .//span[contains(class,price)] # 捕获元素折扣标签文本 .//span[contains(text(),折)] # 模糊匹配查找包含特卖文字的楼层标题 //*[contains(text(),特卖)]CSS选择器适合结构简单、class清晰的页面写法更短比如.goods-item .price就能拿到价格元素。XPath胜在能用contains模糊匹配和层级穿梭页面结构经常变的电商页面更抗造。我的选型原则class稳定用CSS结构常变或要用文本定位就用XPath。正则表达式不是用来定位的是用来提取的。折扣2.5折要单独拿数字就在获取元素文本之后接一个正则提取把数字抠出来存成数字类型后面比价才能算。变量与数据类型价格为什么变成文本影刀RPA的变量有数字、字符串、列表、字典几种。“获取元素文本读回来的价格永远是字符串比如¥259”直接拿去比较大小会报错或者比错。我的处理习惯读回来先做两步清洗。第一步用替换文本指令把¥和替换成空第二步用正则\d\.?\d*把纯数字提出来。下面这段是我流程里真实的清洗逻辑# 输入s_price 为获取元素文本读到的原始价格如 ¥1,299# 输出f_price 为浮点数可直接参与大小比较importre sstr(s_price)ss.replace(¥,).replace(,,)mre.search(r\d\.?\d*,s)f_pricefloat(m.group())ifmelse0.0列表和字典用在哪循环获取相似元素列表拿到的就是一个元素列表遍历时逐个取文本字典用来存商品名→上次价格的对应关系本轮价格和它一比就知道涨没涨。字典取键之前先用判断元素是否存在的思路检查键在不在不在就给默认值否则会直接报错中断。字符串的索引和拼接也要熟。拼接用在构造URL上比如把楼层ID拼进特卖页链接实现只抓某一个品牌专场。流程控制三种循环与异常兜底影刀RPA的循环指令有四种唯品会采集主要用两种商品列表用获取相似元素列表拿到列表后接ForEach列表循环楼层翻页数量不确定时用While条件循环。关键在循环体内部的结构。我建议每一层循环里都包一个Try-CatchCatch块里放打印日志把出错的是哪个商品记下来然后继续下一件。没有这个兜底第37件商品页面结构变了一下整个流程就停在那一动不动你还得回来人工排查。If条件判断主要用在两处一是判断元素是否存在比如判断元素是否存在折扣标签不存在就记无折扣二是判断价格对比结果降价超过阈值才触发通知。条件里比较数字之前务必确认已经清洗过这是我反复强调的原因——我第一次跑就因为¥没去掉所有商品都被判定为降价通知发了一百多条。循环体内不加异常处理是采集流程半夜挂掉的头号原因。网页自动化等待、弹窗与翻页的实战处理网页自动化是唯品会这类平台采集的主战场影刀RPA的网页指令都在指令面板的网页自动化分类下。先说打开页面的标准姿势。“打开网页指令里URL填特卖页地址打开方式选新建标签页”。打开之后不要立刻采集先接等待元素出现指令元素选商品卡片的定位超时设15秒。页面加载慢的时候硬取元素轻则取空重则整个列表一条都拿不到。弹窗处理有五步标准流程判断元素是否存在弹窗、存在则点击关闭按钮、再判断一次是否关闭、没关掉就点右上角叉、最后放行。唯品会的登录引导弹窗、优惠券弹窗都比较规律这套流程能覆盖。遇到点击无反应的盲点弹窗用点击图像指令按截图匹配位置去点实测有效。翻页用While条件循环循环条件是下一页按钮可点即not //li[contains(class,next)]/a[contains(class,disabled)]这种结构判断翻到 disabled 就停。这一招是我从拼多多采集里学来的不确定总页数时通用。场景用什么指令坑页面加载慢等待元素出现超时别设太短弹窗拦截判断元素是否存在点击记得二次确认关闭翻页到头Whiledisabled判断别用固定次数懒加载商品滚动页面列表去重只滚一次会漏懒加载要单独说唯品会楼层往下滚才加载新商品做法是滚动页面和获取相似元素列表交替每次滚动后把新拿到的商品和已有列表去重直到列表数量不再增长为止。数据处理Excel写入与降价对比数据抓下来要落到Excel。用打开Excel指令绑定一个工作簿循环体内用写入单元格把商品名、现价、折扣、采集时间逐列写进去列号用变量控制每写一行加一。降价对比的逻辑把昨天的数据先获取表格读成一个数据表格转成字典本轮每采到一个商品就去字典里找同名商品的旧价差价算出来。降价超过设置的比例把商品信息写进一个降价清单的Sheet。数据清洗前面讲过价格这里补一个商品名的坑唯品会商品标题里经常带引号和换行直接写Excel有时会串列。用替换文本把换行替换成空格再写稳得多。进阶技能HTTP请求与图像点击两个进阶技能在唯品会场景里很实用。第一个是HTTP请求指令可以直接GET特卖页的接口地址返回JSON后用JSON指令解析出商品列表比模拟点击快得多还不吃加载速度。缺点是接口地址会变坏了就要回退到页面采集方案所以我一直是两条路都留着。第二个是点击图像。有些楼层入口是图片型按钮元素定位拿不到就把按钮截一张图存在流程文件夹里用点击图像指令匹配点击锚点选中心位置。图像识别对分辨率敏感你换显示器后要重新截图这也是我的血泪教训之一。OCR在这套流程里不是必需的但唯品会部分活动页的价格是图片形式可以接OCR文字识别把价格抠出来再走前面那套正则清洗。定时任务与通知联动让监控全自动监控要自动跑核心是定时任务。在影刀客户端右下角找到计划任务新建一条选你的流程执行频率设每天早9点。夜间执行有个坑电脑要开着且不睡眠控制面板里把睡眠设成从不否则任务到点跑不动。降价通知我用的方案是Webhook准备一个群机器人的Webhook地址流程末尾加If条件判断降价清单非空非空就用HTTP请求指令POST一条降价摘要进群。没有群的用邮件也行发送邮件指令把降价清单当附件发给自己。工程化规范子流程拆分与调试流程变大以后必须拆子流程。我的拆法是五个初始化开表格、建字典、打开页面采集、数据清洗、降价对比、通知发送。子流程之间用输入输出参数传数据主流程就是五个方块连起来哪里坏了点哪个改起来互不影响。调试用断点。在可疑指令上右键添加断点点运行会停在断点处下方变量面板能看每个变量的实时值一行行往下走。我排查所有商品都降价那个问题就是这么一步步看到价格变量里带着¥的。版本选择上提醒一句社区版每天30分钟跑不完的流程别硬扛要么把采集楼层拆开分时跑要么升级创业版。易错速查表现象原因解决相似元素列表为空没等页面加载完前面加等待元素出现价格比较全部报错文本没清洗成数字替换正则后再比较翻页死循环disabled判断写错用XPath检查按钮class定时任务没执行电脑休眠了电源计划设从不睡眠写Excel串列标题含换行符替换文本去掉换行学习资源与延伸阅读这套唯品会折扣监控的完整流程源码我放在代码仓库 home.linyan.cloud可以直接参考改造把监控对象换成你关注的楼层就行。官方文档和社区里关于获取相似元素列表等待元素出现的说明也值得翻一遍比我写得细。#影刀RPA #RPA自动化 #数据采集 #唯品会 #电商自动化作者林焱
返回列表