☰
影刀RPA实操指南:拼多多商品数据批量采集与价格清洗全流程
2026/10/1 14:20:52 网站建设 项目流程

影刀RPA实操指南:拼多多商品数据批量采集与价格清洗全流程

拼多多商家和做电商数据分析的人都懂那种痛:想盯一批竞品的价格变化,网页上一个一个点开看,几百个商品盯一轮就是一整天,价格还带着"¥128.90"这种没法直接算数的格式。这篇讲影刀RPA做拼多多商品数据批量采集的完整方案,从搜索结果页抓取,到价格清洗成纯数字,再到每天定时自动跑,全流程一次讲完。

认识影刀:环境与浏览器配置

影刀RPA从官网下载安装,装完先做两件事:在"工具"页面安装浏览器插件(Chrome或Edge),登录账号激活社区版。

拼多多网页端对自动化相对敏感,浏览器建议用独立Profile专门跑流程,和日常上网的浏览器分开,避免Cookie互相干扰。多账号采集时更要隔离环境,一个账号一个浏览器配置。

流程主线:采集器的五个模块

整个流程按子流程拆分,主流程只做串联:

  1. 打开搜索页并输入关键词搜索
  2. 循环滚动加载商品列表
  3. 抓取单页商品的字段数据
  4. 翻页直到没有下一页
  5. 价格清洗并写入Excel

模块化不是洁癖,是工程需要——后面你会不停复用"抓取单页"这个子流程换关键词跑。

变量与数据类型:字典是商品数据的最佳容器

每个商品有标题、价格、销量、店铺名四个字段,用字典装最合适,最后把字典塞进列表,就是标准的结构化数据。

  • 新建变量:商品列表(列表类型)、当前商品(字典类型)
  • 字典取值时键可能不存在,用get方式给默认值,比如销量为空按0算
  • 价格从网页抓出来永远是字符串,"¥128.90"和"128.90"是两种东西,清洗环节就是处理这个

我踩过的坑:一开始用两个列表分别装标题和价格,翻页后两个列表长度对不上,数据全串位。改成一个父卡片字典往下取字段后,天然对齐,再没出过错。官方文档里专门讲过这个"两个相似元素列表长度不同"的错位问题,新手一定要绕开。

网页自动化:打开、搜索、等待的三板斧

流程开头三条指令:

  • 【打开网页】:URL填拼多多搜索结果页地址,带上关键词参数,打开方式选"新建标签页"
  • 【等待网页加载完成】:超时20秒
  • 【等待元素(web)】:等第一个商品卡片出现,超时15秒

拼多多搜索页也是懒加载,用【滚动鼠标滚轮】向下滚3到5次,每次滚完等2秒让商品渲染出来。抓取前不滚动,只能拿到第一屏的商品,这是新手最常犯的错。

元素定位四合一:拼多多页面的XPath实战

商品卡片先捕获一次:拖入【获取相似元素列表(web)】指令,点捕获元素按钮,鼠标移到商品卡片出现橙色边框后点击确认。然后进元素编辑器把自动生成的规则加固成模糊匹配的XPath:

# 捕获元素:搜索结果页所有商品卡片容器 //div[starts-with(@class,'goods-item')] # 捕获元素:商品标题(卡片内往下找两级) .//div[contains(@class,'title')] # 捕获元素:商品价格(文本含¥的元素) //*[contains(text(),'¥')] # 捕获元素:已拼件数(文本含"件"的元素) //*[contains(text(),'拼单')] # 捕获元素:店铺名称 .//div[contains(@class,'store')] # 参照物定位:通过"已拼"文字反查它的兄弟元素(销量数字) //*[contains(text(),'已拼')]/following-sibling::*[1]

CSS选择器在这里是XPath的平替:纯class定位如div.goods-item .title更短,用定位方式下拉切换即可。但按文本找价格这种活只能XPath干,所以拼多多场景我主用XPath。

正则在定位环节也有一席之地:销量文本"已拼2.3万件"要抽数字,用指令【从文本中提取内容】写[\d.]+,带分组默认返回第一个捕获组,直接得到2.3。

流程控制:For次数循环加翻页判断

单页抓取用【循环相似元素(web)】遍历商品卡片,循环体内用"获取元素文本内容"逐字段取值存进字典。翻页用两层控制:

  1. 外层【For次数循环】控制总轮次,设一个足够大的安全上限比如50,防死循环
  2. 每轮先用【IF 元素可见(web)】判断"下一页"按钮是否存在且没带disabled类,可点就【点击元素(web)】翻页,不可点就跳出

不确定总页数时,永远让按钮状态决定退出,不要硬编码页数,这条是我第一批采集流程跑挂两次后总结的。

页面翻页会刷新导致原元素失效的话,官方的标准解法是:For循环内每轮重新获取相似元素列表,按下标取项操作,不依赖上一轮的元素对象。

数据处理:价格清洗才是价值所在

采集只是搬运,清洗才让数据能用。拼多多价格常见四种形态:

原始文本问题清洗目标
¥128.90带货币符128.90
¥1,299.00带千分位逗号1299.00
券后99.5带中文前缀99.5
空/乱码页面没渲染完标记为缺失
# 输入:从页面抓到的价格字符串列表# 输出:浮点数价格列表,异常值按0处理并单独标记importredefclean_price(raw_prices):clean_list=[]forpinraw_prices:p=str(p).strip()# 只保留数字和小数点,去掉¥、逗号、中文nums=re.findall(r'\d+(?:\.\d+)?',p.replace(',',''))ifnums:clean_list.append(float(nums[0]))else:# 什么数字都抽不出来,按0并人工复核clean_list.append(0.0)returnclean_list

用【插入代码段(Python)】指令执行,输入输出绑流程变量。更细的清洗用Pandas一次搞定:批量转数值、去重、按价格排序、算均值,影刀的Python环境支持第三方库,装好pandas直接用。

清洗完用【打开/新建Excel】建表,【写入内容至Excel工作表】写表头和数据,【保存/另存Excel】落盘。数据量大就用数据表格中转:【批量数据抓取】先堆进数据表格,最后一次性写入,比逐行快得多。

鼠标键盘图像:处理定位不到的东西

拼多多偶尔弹滑块验证或优惠券浮窗,DOM定位不到就上图像方案:【等待图像】等验证按钮出现,超时30秒,出现就【点击图像】点掉。鼠标操作选驱动模式更稳,虚拟键盘驱动在"工具"页面有安装说明。

OCR用得少但关键:纯图片型弹窗用【IF 屏幕上存在文本(OCR)】判断内容后走不同分支。这些手段都是兜底,别把主流程建在图像识别上,准确率和速度都吃亏。

进阶技能:HTTP请求直取数据

页面抓取慢且易失效,进阶方案是用【HTTP请求】指令直接调拼多多页面背后的数据接口,拿JSON再解析:请求返回的JSON用"转JSON对象"处理,按下标和键取字段,一次请求能拿几十条商品数据。

这条路的代价是要处理鉴权和分页参数,Cookie过期就要重新维护。我的建议是两条腿:页面抓取做基线保证能跑,接口方式做提速,接口失效时自动切回页面抓取。

系统联动:定时跑、自动通知、飞书落表

流程稳定后加三层联动就完全无人值守:

  1. 【定时触发器】设每天早上7点自动运行,赶在同事上班前出表
  2. 【发送邮件】把Excel附件发到自己邮箱,或企业微信群机器人发运行摘要
  3. 飞书协同的团队用"新增行记录-飞书多维表"直接写多维表格,自动生成看板

异常处理别忘了:把主流程拖进Try块,Catch块里用【打印日志】记报错信息加截图,Finally块关浏览器关Excel,保证中断后环境干净。运行日志在客户端"日志"页面可查,报错排查先看日志再说。

工程化与调试规范

三个习惯让流程寿命翻倍:

  • 子流程按"01_搜索"“02_抓取单页”“03_翻页”“04_清洗”"05_落表"编号命名,主流程一眼看懂
  • 调试时在可疑指令右键添加断点,单步执行配合变量面板看数据流,别整段重跑
  • 元素统一放元素库管理,页面改版只改一处,所有子流程同步生效

版本选择上,社区版每天限时够调试用,要挂定时任务长期跑就上创业版,无时长限制。

常见问题速查表

现象原因解决
价格列全是0正则没匹配到格式打印原始文本检查形态
数据串位错行双列表下标对应单父卡片内取全部字段
翻到第3页卡死翻页后元素失效每轮重新获取相似元素列表
跑几小时后中断Cookie过期或验证码Try-Catch+图像兜底+重试
Excel写入报RPC错误文件被人工占用关闭占用或换路径

延伸阅读

这套拼多多采集器的完整源码,包括多关键词版本、价格变动对比版本和接口抓取的分支流程,我都开源放在代码仓库 home.linyan.cloud,可以直接参考改造。做价格监控这条线,仓库里的清洗脚本值得单独拿去复用。

#影刀RPA #RPA自动化 #拼多多 #数据采集 #数据清洗

作者:林焱

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询