当前位置: 首页 > news >正文

影刀RPA新手教程:电商创业者完全指南——从零到一搭建第一个自动化选品采价流程

影刀RPA新手教程:电商创业者完全指南——从零到一搭建第一个自动化选品采价流程

我做电商第一年,每天手动去看竞品的价格和销量。

10个竞品,每个要打开页面看价格、看销量、看评价数,记录下来做表格。每天这一套操作下来,一个半小时没了。

后来我用影刀RPA做了一个自动选品采价流程,每天早上自动跑,数据自动写入飞书多维表格。现在每天省一个半小时,一个月就是45个小时。

这篇文章围绕"竞品价格销量自动监控"这个真实案例展开,从零开始带你搭一个完整的电商自动化流程。

一、安装与准备:电商自动化的环境搭建

影刀RPA社区版免费,电商用足够了。如果你有多个店铺要管理,建议上创业版,可以同时跑多个流程。

安装完之后,先把你要监控的电商平台(淘宝、拼多多、京东、抖音小店)都在浏览器里登录好。Cookie有了,后面的采集流程就不需要反复登录了。

电商自动化的关键是频率控制。平台的反爬措施很严,操作太快会被封IP或者封账号。我一般在每个操作之间加2-5秒的随机等待。

我建议专门准备一台电脑跑RPA流程,不要在自己的工作电脑上跑。电商采集流程经常要跑很久(几百个商品),占用资源比较多。

二、元素定位四合一:电商页面的定位技巧

电商页面的元素定位,有几个特点:页面结构复杂、动态内容多、反爬措施严。

元素捕获能用就用,但经常失效。电商平台的class大多是动态生成的,每次刷新都变。

XPath是电商采集的主力工具:

//div[@class='price'] ← 价格(经常失效,要换写法) //span[contains(@class,'price')] ← 价格(模糊匹配class) //div[@id='detail_price'] ← 价格(按id定位,最稳) //span[text()='立即购买']/preceding-sibling::span[1] ← 取"立即购买"前面的价格 //div[contains(@class,'sold')] ← 销量 //div[contains(@class,'comment')] ← 评价数

CSS选择器在电商页面上表现也不错:

.div.price ← 价格 .span[class*='price'] ← 价格(模糊匹配) #detail_price ← 价格(id选择器) .div[class*='sold'] ← 销量

正则表达式用来处理混乱的价格格式(“¥5,999” “到手价5999” “促销价: 5999.00”):

¥?(\d+,?\d*\.?\d*) ← 提取价格数字 到手价[::]?\s*(\d+\.?\d*) ← 提取"到手价"后面的数字 促销价[::]?\s*(\d+\.?\d*) ← 提取"促销价"后面的数字 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6a8b9913406c4c999a0b9e8ffe1bef84.png#pic_center)

我当时踩过的坑:拼多多的价格是分单位(599900分=5999元),采集下来要除以100。我第一次没注意,分析结果全是实际价格的100倍。

三、变量与数据类型:电商数据的正确存储

电商数据种类多,要用对数据类型。

数字类型存价格、销量、评价数。注意:价格要存成浮点数(5999.00),销量要存成整数。

price=5999.00sales=1234comments=567

字符串用来存商品标题、链接、店铺名、商品ID。

店群矩阵自动化突破运营极限!

title="iPhone15 Pro 256G 蓝色"shop_name="Apple官方旗舰店"item_id="1234567890"

列表用来存一批商品。采集一个关键词下的20个商品,先存在列表里,统一写入Excel。

字典用来存单个商品的完整信息,结构化清晰:

product={"title":"iPhone15 Pro","price":5999.00,"sales":1234,"comments":567,"shop":"Apple官方旗舰店",![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3223931915474008a0f657ffdbe17c9a.png#pic_center)"url":"https://item.taobao.com/xxx","collect_time":"2024-03-15 09:00:00"}

JSON处理在调用电商API的时候用到。淘宝开放平台、京东开放平台都有API,返回JSON格式。

我当时踩过的坑:销量"1.2万"存到Excel里变成了日期。解决方法是在写入Excel之前,把所有数字字段转成字符串。

四、流程控制:让采价流程会"思考"

电商采集不是简单的打开页面→抓取→保存,中间有很多判断逻辑。

If条件判断做价格预警:价格下降了超过5%?发通知。销量突然暴涨?发通知。

current_price=5699.00last_price=5999.00drop_rate=(last_price-current_price)/last_priceifdrop_rate>0.05:print("价格下降超过5%,发通知")

循环用来批量采集商品。ForEach列表循环最常用:有一批商品链接,逐个打开采集。

product_links=get_product_links("iPhone15 Pro")forlinkinproduct_links:open_page(link)price=get_price()sales=get_sales()save_to_excel(title,price,sales)wait_random(2,5)# 随机等待2-5秒

While条件循环用来翻页采集:不知道有多少页,用While循环,有下一页就继续,没有就停。

相似元素循环用来处理商品列表:搜索结果页面有48个商品,用相似元素循环逐个采集。

Try-Catch在所有采集步骤外面都要包一层。网络卡了、页面结构变了、弹窗出来了——这些都要优雅处理。

我第一次做价格监控,没加Try-Catch。跑到第50个商品的时候,页面弹了一个"是否继续"的确认框,流程停了。后面100个商品都没采到。

五、网页自动化:电商平台的特殊问题

电商平台的网页自动化,是所有场景里最难做的。反爬严、页面复杂、动态内容多。

等待策略:电商平台响应慢,而且有动态加载,必须用"元素出现再继续",等待时间设5-10秒。

弹窗处理:电商平台经常弹"登录"“领券”"下载App"的弹窗,要用5步标准流程处理。

翻页处理:搜索结果有多页,用While循环判断"下一页"是否可用。

懒加载处理:电商搜索结果页是滚动加载的,要模拟滚动才能加载全部商品。

scroll_down(500)# 向下滚动500像素wait(2)# 等待加载count=count_elements(".item")# 统计当前商品数量

iframe处理:有些电商平台(特别是天猫)的某些内容在iframe里,要切换进去才能操作。

窗口切换:点击商品会打开新标签页,要用"切换到指定窗口"。

我踩过最恶心的坑:淘宝的价格有时候不在页面上,要鼠标悬停才显示。解决方法是用"鼠标悬停"指令,悬停之后再抓价格。

六、数据处理:让采价数据产生价值

采集到原始数据之后,要做分析和处理,才能真正用起来。

Excel读写:我每天把采集到的竞品数据写入Excel,字段包括:日期、商品标题、价格、销量、评价数、店铺名。

importpandasaspd df=pd.read_excel("竞品监控.xlsx")# 按价格排序df_sorted=df.sort_values("价格")# 计算平均价格avg_price=df["价格"].mean()# 找出销量最高的商品top_sales=df.sort_values("销量",ascending=False).head(5)

文本提取与清洗:商品标题里经常有特殊字符(emoji、换行符),写入Excel之前要清洗。

importre title="iPhone15 Pro🔥现货速发"clean_title=re.sub(r'[^\u4e00-\u9fa5a-zA-Z0-9\s]','',title)

JSON解析:调用电商API得到的JSON数据,要解析后提取字段。

数据库连接:我的竞品数据库存在MySQL里,方便按日期、按商品、按价格范围查询。

五个常见报错:

  1. 价格格式不统一——"5,999""5999""¥5999"要统一处理
  2. 销量"1.2万"要转成数字——用正则提取数字部分,再乘以10000
  3. Excel写入重复——同一商品同一天可能采到多次,要去重
  4. 网络连接超时——电商平台对频率有限制,加热重试
  5. 编码错误——商品标题有特殊字符,要用UTF-8编码

七、鼠标键盘图像自动化:处理特殊场景

电商页面有些操作,网页自动化完成不了,要用鼠标键盘模拟。

模拟模式和驱动模式:电商反爬严,建议用驱动模式,更像真人操作。

图像识别用在什么场景?有些电商平台的价格是用图片显示的(很少见,但有),要用OCR识别图片里的价格。

# 图像识别点击"加购"按钮# 有些按钮是图片,抓取不到wait_image_appear("add_cart.png")click_image("add_cart.png")

锚点9位置+偏移:点击的位置不对,可以用偏移调整。

八、进阶技能:让电商自动化更强大

HTTP请求对接电商开放平台API。淘宝开放平台、京东开放平台、拼多多开放平台都有API,直接调API比网页抓取稳定10倍。

importrequests# 淘宝开放平台API示例(伪代码)url="https://eco.taobao.com/router/rest"params={"method":"taobao.item.get","item_id":"1234567890",![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2cc38e39875b4fd588f26c983804b76f.png#pic_center)"app_key":"your_app_key"}resp=requests.get(url,params=params)item_data=resp.json()["item"]

Python协同做价格分析。采集到一批价格数据之后,用Python做统计分析(平均价、最高价、最低价、价格分布)。

importpandasaspd df=pd.read_excel("竞品价格.xlsx")stats=df.groupby("商品标题")["价格"].agg(["mean","min","max"])

OCR文字识别用来处理商品详情页的图片。有些商品参数在图片里,要用OCR识别出来。

ADB手机自动化:抖音小店、快手小店在手机端的功能比网页端多,可以用ADB控制手机操作。

temu店群自动化报活动案例

九、平台实战:主流电商平台的差异

淘宝/天猫:反爬最严,操作频率要严格控制(每个商品间隔3-5秒)。登录态保持用Cookie,Cookie有效期比较长。

拼多多:价格用分单位,采集后要除以100。销量数据在页面上不一定显示,有些要用API获取。

京东:价格比较好抓,但要注意价格和促销价的区别。有些商品有多个价格(原价、现价、Plus价)。

抖音小店:抖音电商发展很快,但开放平台API还不够完善,很多数据要网页抓取。

十、系统联动:让电商数据自动通知到你

飞书消息通知:每天采集完竞品数据之后,自动发飞书消息:“今日采集竞品XX个,X个商品降价”。

飞书多维表格:竞品数据存在飞书多维表格里,随时随地用手机查看,还能做数据透视和图表。

邮件发送:把每周的竞品分析报告发给团队,用影刀的发送邮件指令,附件是Excel报告。

定时任务配置:每天早上9点自动跑采集流程(电商平台早上数据更新);每天下午6点发竞品价格变动通知。

十一、工程化与规范:电商自动化的工程管理

子流程封装:我把电商采集流程拆成了:平台登录子流程、关键词搜索子流程、商品采集子流程、数据清洗子流程、数据存储子流程、通知子流程。

调试技巧:电商采集流程复杂,我会在每个商品采集完成之后加"打印日志",输出"正在采集:商品XXX,进度XX/100"。

命名规范:product_title比pt好,current_price比cp好,shop_name比sn好。

版本选择:社区版够用。如果要同时监控多个平台、多个关键词,建议上创业版,可以同时跑多个流程。

流程模板化:不同电商平台的采集流程,底层逻辑是一样的(搜索→翻页→采集→保存),做成模板,新平台来了改改元素定位就能用。

十二、速查表与常见报错:电商自动化专属问题

元素定位失败:电商平台class动态生成,要用contains()模糊匹配,或者用id定位(id一般是固定的)。

XPath语法报错:价格有时候在text()里,有时候在@value里,有时候在@data-price里,要先用检查元素确认。

Excel报错:价格"5,999"写入Excel会变成数字5999(逗号被忽略),这个是正常的。但要小心"¥5999"写入Excel会报错,要先去掉¥符号。

循环报错:相似元素循环在页面刷新之后找不到元素,要在循环体里加等待时间。

反爬封IP:这是电商自动化最大的问题。解决方案:降低频率(每个操作间隔3-5秒)、用代理IP池、用API代替网页抓取。

登录态失效:Cookie过期后流程会失败。解决方案是加一个登录状态检测,失效了自动重新登录。

我整理了一份电商自动化常用XPath和防封策略,放在 home.linyan.cloud,电商创业者可以去下载参考。


#影刀RPA #RPA教程 #电商自动化 #选品采价 #竞品监控

作者:林焱

http://www.cnnetsun.cn/news/3078429.html

相关文章:

  • GLM5.2本地部署实战:从环境搭建到性能优化全解析
  • 美团王兴的白发
  • 中兴F50怎么安装UFI-TOOLS并远程访问?完整图文教程
  • Python爬虫经典案例003:正则表达式精通指南——文本数据的精准提取技巧
  • 2026顶配单!好用的降AIGC网站全测评,效率直接拉满!
  • FileLock | 文件防删除保护工具
  • 一线观察:长期体验长春汽车贴膜后发现的技术细节
  • 市场正规的画册设计公司口碑
  • 【 Godot 4 学习笔记】Blender到Godot4
  • Flutter 应用加固方法 从 Dart 混淆到 IPA 层面的保护方案
  • 质量好的号卡随身wifi公司
  • 线上AI接口大面积超时:一次从告警到修复的完整排查记录
  • Claude API 接入前的 4 项必备准备:账号、模型、环境、成本控制
  • 龙芯3B6000平台部署Nexus 3私有仓库:Docker容器化实践指南
  • STM32G4 CubeMX实战:手把手教你用SPI搞定DRV8353S电机驱动(附完整代码)
  • 生成式AI机器人潜力初显,企业部署需把握四大关键步骤
  • .env相关配置案例
  • LDPC编码(低密度奇偶校验码)
  • 本地 AI 自动化工具 OpenClaw 部署全流程,附常见故障修复(含安装包)
  • 【共创季稿事节】鸿蒙ArkTS-margin外边距深度解析
  • 【银河麒麟】virt-manager虚拟机之间网络不通问题
  • 别再纠结哪家大模型最强了——模型解耦才是 2026 年 AI 架构的正确姿势
  • fallbackFactory与feign.sentinel.enabled=true
  • 2026年最新八字排盘软件APP推荐 新手必看!
  • RAG 看起来简单,一上线就翻车?逐个排查 5 个环节
  • 2026 主流云手机 72 小时高负载实测:红手指 / 傲晨云 / 多多云 / 雷电云横向对比测评
  • 一文搞懂:CI/CD自动化流水线搭建——从代码提交到生产部署的全流程实战
  • Claude和Codex能做直播复盘吗?弹幕问题、成交线索和下播改进清单
  • Kimi Code进阶指南:解锁视频理解、数据插件与智能体协同编程
  • 零基础Linux运维学习路径:从Linux到Zabbix、Docker、MySQL、Nginx实战