# 影刀RPA新手教程:拼多多商品数据自

影刀RPA新手教程:拼多多商品数据自动化采集完整流程

做拼多多店群,每天要手动搜竞品、复制标题价格、粘贴到表格,几十个店铺根本忙不过来。
解决方法:用影刀把“搜索→采集列表→翻页→写Excel”全自动化。

本文给出一个开箱即用的流程模板,按步骤配置就能跑。


一、整体流程设计

拼多多搜索页采集分为5步:

步骤操作对应指令
1打开拼多多并登录打开网页 + 判断登录
2输入搜索关键词输入文本 + 点击搜索
3等待商品列表加载等待元素出现
4循环采集商品卡片获取相似元素列表 + 循环
5翻页继续采集条件循环 + 点击下一页
6写入Excel追加行 + 关闭

picture.image

picture.image

picture.image 前置准备

  • 拼多多账号已登录(建议在浏览器中保持登录态)
  • 准备好Excel表头:商品标题、价格、已拼件数、店铺名、商品链接

picture.image


二、捕获关键元素(拼多多搜索页)

picture.image 打开拼多多首页(https://mobile.yangkeduo.com),搜索任意词,F12查看结构。

需要捕获的元素清单

| 元素名 | 用途 | XPath参考(手动校验) |

picture.image |--------|------|----------------------| | input_search | 搜索输入框 | //input[@class='search-input'] | | btn_search | 搜索按钮 | //div[@class='search-icon'] | | div_product_card | 商品卡片容器 | //div[@class='goods']//div[contains(@class,'goods')] | | txt_title | 商品标题 | {当前卡片}//div[@class='title'] |

picture.image | txt_price | 价格 | {当前卡片}//span[contains(@class,'price')] | | txt_sales | 已拼件数 | {当前卡片}//div[contains(@class,'sales')] | | txt_shop | 店铺名 | {当前卡片}//div[contains(@class,'store')] | | link_detail | 商品链接 | {当前卡片}//a/@href | | btn_next | 下一页按钮 | //a[contains(text(),'下一页')] |

💡 拼多多的class经常变化,建议用contains模糊匹配。
比如 //div[contains(@class,'goods')] 比固定class更稳定。

捕获技巧

  • 商品卡片用“捕获元素”点中商品区域的外层div
  • 子元素(标题、价格)用右键父元素→“捕获子元素”生成相对路径

三、分步指令实现

步骤1:打开拼多多并确保登录

# 1. 打开拼多多(移动端或PC端,推荐移动端m站)
#    打开网页:https://mobile.yangkeduo.com
#    等待元素出现://input[@class='search-input'](超时5秒)

# 2. 判断是否需要登录
#    判断元素是否存在:“登录”按钮(如 //div[contains(text(),'登录')])
#    如果存在,执行登录子流程(手动扫码或账号密码)

picture.image

步骤2:输入关键词并搜索

# 输入文本
#    目标元素:input_search
#    文本内容:{keyword}(例如“手机壳”)
#    清空原有内容:是

# 点击搜索
#    目标元素:btn_search
#    点击模式:模拟点击

# 等待列表加载
#    等待元素出现:div_product_card(超时8秒)

步骤3:采集一页的商品数据

# 获取相似元素列表
#    目标元素:div_product_card
#    输出列表:product_cards

# 循环相似元素列表
#    列表:product_cards
#    当前元素变量:card

#    循环体内:

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/ab6664d8428a46dda232886960ab4ea1~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781917118&x-signature=9riiNXZO2W%2BC3qJMduj%2BYP%2BQh48%3D)
#       1. 获取元素文本(标题)
#          元素路径:{card}//div[@class='title'] → 输出 title
#       2. 获取元素文本(价格)
#          元素路径:{card}//span[contains(@class,'price')] → 输出 price
#       3. 获取元素文本(已拼件数)
#          元素路径:{card}//div[contains(@class,'sales')] → 输出 sales_raw
#          清洗:提取数字(可用Python正则)
#       4. 获取元素文本(店铺名)
#          元素路径:{card}//div[contains(@class,'store')] → 输出 shop
#       5. 获取元素属性(链接)
#          元素路径:{card}//a
#          属性名:href → 输出 link
#       6. 组装一行数据:[title, price, sales_clean, shop, link]
#       7. 追加行到Excel(Excel对象已在主流程打开)

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/3aa04f49497c4a6bb4a465609dfb3ea6~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781917118&x-signature=HT5%2BdPw6LaLQ7Z0iiLPAdfKlKFg%3D)
#    循环结束

价格和销量清洗示例(用Python代码指令):

import re

price_raw = get_var("price")  # 如 "¥29.9"
price_num = re.search(r'[\d\.]+', price_raw).group()

sales_raw = get_var("sales_raw")  # 如 "已拼1.2万件"
match = re.search(r'[\d\.]+', sales_raw)
if match:
    num = float(match.group())
    if '万' in sales_raw:
        sales_num = int(num * 10000)
    else:
        sales_num = int(num)
else:
    sales_num = 0

set_var("price_clean", price_num)
set_var("sales_clean", sales_num)

步骤4:翻页循环

# 条件循环(当“下一页”按钮存在时继续)
#    循环条件:判断元素是否存在(btn_next) == True

#    循环体内:
#       1. 鼠标点击 btn_next
#       2. 固定等待 1 秒
#       3. 等待元素出现 div_product_card(超时8秒)
#       4. 执行“采集一页的商品数据”(调用子流程或复用步骤3)
#       5. (循环末尾,条件会重新判断)

# 条件循环结束

步骤5:写入Excel并保存

# 在主流程开始前,打开Excel(若不存在则创建)
# 打开Excel → excel_obj

# 在每次采集到一行数据后,执行“追加行”

# 所有页面采集完成后
# 关闭Excel(保存)

四、完整流程代码结构(文字版)

A_Main
  ├─ 1. 打开Excel(路径:C:\pdd_data\result.xlsx)→ excel_obj
  ├─ 2. 打开拼多多搜索页
  ├─ 3. 登录判断(若未登录则手动扫码)
  ├─ 4. 输入关键词(从全局变量或弹窗输入)
  ├─ 5. 点击搜索
  ├─ 6. 等待列表出现
  ├─ 7. 采集第一页数据(调用子流程 C_01_CollectOnePage)
  ├─ 8. 条件循环(下一页存在)
  │      ├─ 点击下一页
  │      ├─ 等待新列表
  │      └─ 调用 C_01_CollectOnePage
  └─ 9. 关闭Excel(保存)

C_01_CollectOnePage(子流程)
  ├─ 1. 获取相似元素列表(商品卡片)
  ├─ 2. 循环相似元素列表
  │      ├─ 提取标题、价格、销量、店铺、链接
  │      ├─ 数据清洗(价格转数字、销量转整数)
  │      ├─ 组装行数据列表
  │      └─ 追加行到 excel_obj
  └─ 3. 返回(无输出参数)

五、避坑指南(拼多多专属)

坑1:反爬机制

拼多多对频繁访问有限制。
解决:每次点击“下一页”后固定等待1~2秒,不要太快。
翻页超过10页容易弹验证码,建议加判断:出现验证码则暂停并报警。

坑2:商品卡片懒加载

滚动后才加载更多商品。
解决:采集前先执行“滚动窗口到底部”,等待0.5秒,再获取相似元素列表。

坑3:价格和销量格式不统一

价格有时是“¥29.9”,有时是“券后价¥19.9”。
解决:正则提取第一个数字;销量可能是“1.2万件”或“3000件”,统一转成数字。

坑4:下一页按钮最后一页会变灰

判断元素存在时,最后一页“下一页”按钮可能还在(disabled状态)。
解决:判断时加上 and not(contains(@class,'disabled')) 或判断元素是否可点击。


六、优化建议

问题优化方法
采集速度慢用“后端点击”翻页 + 缩短等待时间(但小心被封)
数据量大每10页关闭一次Excel重新打开,避免内存爆
关键词动态用“读取Excel”读关键词列表,外层再套循环
定时自动跑用影刀“定时任务”功能,每天凌晨跑
多账号用全局变量保存账号列表,循环登录采集

影刀专属操作清单

操作精确指令说明
打开拼多多打开网页URL用移动版
捕获商品卡片获取相似元素列表关键指令
相对定位子元素{当前卡片}//子路径循环内用
点击下一页鼠标点击 + 模式“模拟点击”加固定等待
等待列表出现等待元素出现超时8秒
追加行到Excel追加行每次采集完一行
数据清洗Python代码用正则提取数字

版本差异:社区版运行拼多多采集建议每次不超过20页,以免触发反爬。
创业版可配置代理IP。


常见问题速查

问题原因解决方法
搜索后列表不出现搜索框输错了用“清空文本”后再输入
商品卡片只采到前几个页面未滚动采集前“滚动窗口到底部”
价格提取到空价格在图片里改用“获取元素属性”取data-price
翻页到第N页就停了触发反爬加随机等待(1~3秒)
Excel里销量显示“1.2万”没清洗加Python转换

推荐资源

  • 影刀官方模板市场:搜索“拼多多商品采集”,下载参考
  • 拼多多反爬策略:建议单次采集不超过30页
  • 实操练习:搜索“手机壳”,采集前3页,对比手动复制的时间

最后一句:拼多多采集的核心是稳不是快。
每步加等待、用相对定位、做好数据清洗。这套流程跑通后,每天省下1小时手动复制的时间。


作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

0
0
0
0
评论
未登录
暂无评论