首页 / 资讯中心 / 文章详情

影刀RPA新手教程零基础保姆级教程

影刀RPA新手教程零基础保姆级教程 ★ FEATURED ARTICLE
影刀RPA新手教程零基础保姆级教程——手把手带你做一个电商价格监控系统我第一次做电商价格监控的时候是为了帮老婆监控淘宝上一件大衣的价格。那时候双11快到了想等降价了再买。手动刷了好几天累得不行。后来想到用影刀RPA做个自动监控系统每天早上自动检查价格降价了就发邮件通知我。做完这个系统后我发现了RPA真正的价值把重复的人工操作变成自动化的流程。这篇文章我会手把手带你做一个真正能用的电商价格监控系统。做完这个项目你就能独立开发大部分数据采集类的RPA应用了。一、认识影刀和安装配置下载和安装去影刀官网下载客户端。安装很简单但要注意一定要装64位版本。我之前装的是32位版本处理大Excel文件的时候老是内存不足报错。后来换成64位版本问题就解决了。安装完成后安装浏览器插件。不装插件的话影刀捕获不到网页元素。界面介绍影刀的界面主要分三块左侧是指令面板中间是流程编辑区右侧是属性面板刚开始可能会被这么多指令吓到。其实常用的指令就那么几个循环、If判断、获取元素、点击元素、填写输入框、Excel读写。剩下的用到再查就行。二、元素定位四合一做电商价格监控最核心的就是准确找到价格元素。元素捕获打开淘宝商品页面点击捕获新元素然后鼠标移到价格上变红后点击。但淘宝的价格元素有点特殊有时候价格是用图片显示的比如优惠价这种用普通捕获捕获不到。我的处理方法是先用普通捕获试试如果不行就用图像识别。XPath的6种写法XPath是最稳定的定位方式。做电商监控必须掌握。相对路径//span[classprice]—— 最常用包含文本//span[contains(text(),¥)]—— 找带¥符号的元素包含属性//div[contains(class,price)]—— 属性值不完全匹配时用逻辑组合//span[classprice and contains(id,item)]轴定位//span[classtitle]/following-sibling::span—— 找同级元素索引定位(//div[classitem])[1]—— 找第一个商品淘宝的商品列表用这个XPath能定位到所有商品价格//div[classitem]//span[classprice]CSS选择器的8种语法CSS选择器比XPath简洁。类选择器.price—— 最常用ID选择器#price—— 最快最准属性选择器[class*price]—— 属性值包含price组合选择器div.item span.price—— 组合用选型指南有ID用CSS没ID用XPath。淘宝大部分元素都有ID或明确的class用CSS就行。正则表达式的3个场景价格元素里经常有其他文字比如¥199.00 起用正则提取纯数字提取数字\d\.?\d*—— 匹配199.00这种格式排除文字^((?!起).)*$—— 排除带起的价格匹配多种格式\d\.?\d*|暂无报价—— 匹配数字或暂无报价三、变量与数据类型数字和字符串从网页抓取的价格是字符串比如¥199.00要转成数字才能比较。我的处理方法price_str¥199.00pricefloat(price_str.replace(¥,).strip())但有时候价格是个范围比如¥199.00-299.00这种要特殊处理。我会取最低价price_str¥199.00-299.00pricesprice_str.replace(¥,).split(-)min_pricefloat(prices[0])列表和字典做价格监控我会把每个商品存成一个字典product{name:商品名称,price:199.00,url:商品链接,platform:淘宝}然后把所有商品放进一个列表。JSON解析如果用电商API获取数据比如淘宝开放平台的API返回的是JSON。用JSON解析指令把JSON转成字典然后提取需要的字段。四、流程控制For和ForEach循环做价格监控要循环多个商品。用ForEach循环获取商品列表 ForEach 商品 in 商品列表 打开商品页面 抓取价格 保存到列表如果要多平台监控淘宝拼多多用嵌套循环ForEach 平台 in 平台列表 ForEach 商品 in 商品列表 抓取价格If判断价格监控的核心逻辑就是If判断如果 当前价格 目标价格 发邮件通知 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/670e8d315a0d419bafb87a52fd967576.png#pic_center)但要注意价格是浮点数比较时可能有精度问题。我的处理方法是转成整数再比较比如乘以100。Try-Catch抓取价格的时候经常会遇到各种意外商品下架了、页面改版了、网络超时了等等。用Try-Catch包住抓取逻辑出错时记录日志然后继续下一个商品。五、网页自动化等待策略电商网站加载比较慢一定要等元素出现再操作。我一般用等待元素出现等待时间设5-10秒。如果10秒还没出现就认为出错了。淘宝有时候会出验证码这种要特殊处理。我的做法是检测到验证码后等待30秒让人手动处理。弹窗处理淘宝登录时会出弹窗。处理方法用获取网页对话框内容查看弹窗文字如果是登录弹窗就用填写输入框(web)输入账号密码然后点击登录但淘宝的登录有时候会出滑块验证码。这种用影刀处理不了要人工处理。翻页淘宝搜索结果有多页。翻页有两种方式点击下一页按钮简单但容易被封滚动加载淘宝现在用这种方式滚动到底部自动加载下一页我用的是滚动加载。用执行JavaScript滚动到页面底部window.scrollTo(0,document.body.scrollHeight);然后等待新内容加载出来。懒加载淘宝的商品图片是懒加载的。但如果只是抓取价格不需要等图片加载。我要抓取的是价格价格在HTML源码里就有不需要等图片。iframe处理淘宝的登录框在iframe里。处理方法用切换到iframe指令切换到登录框的iframe然后在iframe里操作。但现在的淘宝登录改版了不是iframe了而是弹出层。这种直接用点击元素(web)就能操作。窗口切换点击商品后会打开新标签页。处理方法用获取已打开的网页对象匹配方式选匹配当前选中的网页。打开新标签页后一定要切换到新标签页不然操作的就是原标签页。六、数据处理Excel读写价格监控的数据要存到Excel。我的Excel表格设计商品名平台当前价格历史最低价更新时间商品链接用写入Excel(行)指令写入数据。但如果数据量很大比如几千个商品用Excel会很慢。这种建议用数据库。文本清洗从网页抓取的价格经常带有多余字符比如¥199.00 起。用文本处理指令的替换功能把多余字符清掉。我一般会清掉这些¥符号空格起字换行符JSON解析如果用电商API返回的是JSON。用JSON解析指令解析。但要注意API一般有请求频率限制。淘宝开放平台的API每天最多调用几千次。这种要控制好调用频率别超了。数据库操作如果商品很多用数据库存数据。我用的是MySQL。影刀可以用数据库连接指令连接MySQL。但要注意连接数据库时要勾选允许保存密码不然会登录失败。七、鼠标键盘和图像自动化模拟vs驱动做电商监控我主要用驱动方式。因为速度快。但如果遇到某些按钮点不了就换成模拟方式。淘宝的立即购买按钮有时候用驱动方式点不了换成模拟方式就好了。虚拟键盘有些输入框用填写输入框(web)填不进去就用输入文本(桌面)。淘宝的登录账号输入框我就用输入文本(桌面)输入的。图像识别当元素捕获不了的时候用图像识别。淘宝的滑块验证码我就用图像识别处理的。先识别滑块的位置然后模拟拖动。但图像识别有点慢而且准确率不是100%。能不用就不用。锚点定位图像识别可以配合锚点使用。比如先找到商品图片然后点击图片下方的立即购买按钮。9个位置上、下、左、右、左上、右上、左下、右下、中心。还可以设置偏移量。八、进阶技能HTTP/API做电商价格监控用API比用网页抓取快多了。淘宝开放平台有API可以获取商品价格。但要申请API权限还要签协议。我用的是淘宝开放平台的taobao.item.get接口可以获取单个商品的详细信息。但要小心API有调用频率限制。别超了。Python协同有些复杂的数据处理用Python写比用影刀指令拼要简单。比如我要计算价格趋势最近7天的价格变化用Python的pandas库很方便。用执行Python代码指令把Python代码粘进去。OCR如果价格是用图片显示的用OCR识别。但OCR有点慢而且准确率不是100%。能不用就不用。ADB如果要监控手机APP上的价格用ADB。但淘宝APP有反爬虫机制用ADB操作很容易被检测。不建议。九、平台实战淘宝价格监控淘宝的反爬虫比较严格。我的策略每次操作后随机等待2-5秒用模拟鼠标移动让人为操作更逼真每次访问都用不同的User-Agent不要频繁访问一天最多几百次淘宝的价格有时候会有优惠券实际支付价格比显示价格低。这种要特殊处理。我的处理方法是点击领券按钮获取优惠后的价格。拼多多价格监控拼多多的反爬虫比淘宝松一些。但拼多多的页面加载很慢要多等等。拼多多的价格是拼单价要多人拼团才这个价。单个买的话价格会高一些。这种要在流程里判断是拼单价还是单独购买价。TEMU价格监控TEMU是拼多多的海外版。页面是英文的但处理逻辑差不多。TEMU的价格有美元和当地货币两种显示。要统一成一种货币。十、系统联动飞书消息价格降价了自动发飞书消息通知我。用发送飞书消息指令。要先配置飞书机器人的webhook地址。我的飞书消息内容“【价格提醒】商品XXX已降价当前价格¥XXX目标价格¥XXX。”飞书多维表格价格监控的数据存到飞书多维表格方便手机查看。用写入飞书多维表格指令。要先获取飞书多维表格的API token。邮件如果遇到错误自动发邮件通知我。用发送邮件指令。我用163邮箱发的要开启SMTP服务还要获取授权码。定时任务我想每天早上9点自动监控价格用定时任务指令。影刀的定时任务可以设置每天几点执行。我设置的是每天早上9点。这样我上班的时候价格监控已经跑完了数据已经更新了。十一、工程化与规范子流程封装价格监控系统比较长要拆成多个子流程登录淘宝处理登录逻辑抓取商品列表抓取搜索结果列表抓取商品价格抓取单个商品的价格保存数据把数据存到Excel或数据库发送通知降价了发通知这样拆分后流程清晰多了。调试技巧调试价格监控流程我的经验多用打印日志不清楚某个变量的值是什么就打印出来看看逐步执行不要一次性运行整个流程先逐步执行截图出错时自动截图方便排查问题小批量测试先跑几个商品试试没问题再全量跑我第一次做价格监控的时候一次性跑了几百个商品结果中间出错了前面的白跑了。后来我改成每抓10个商品存一次数据。这样即使出错了也只丢失最后10个。命名规范变量名、指令名要有意义。比如商品价格比变量1好懂。我之前的流程命名很随意后来自己都看不懂了。现在我会给每个指令都改个有意义的名字。版本差异影刀有时候会更新某些指令的用法可能会变。我现在用的是影刀2.x版本。如果你用的是1.x版本某些指令可能不一样。流程模板化价格监控系统做好后可以存成模板。以后要做其他电商平台的监控基于模板改就行。比如我后来做了拼多多价格监控就是基于淘宝价格监控的模板改的。十二、速查表和常见报错元素定位失败原因1淘宝页面改版了元素位置变了解决重新捕获元素或者用更通用的XPath比如包含部分class名原因2元素在iframe里解决用切换到iframe指令价格抓取错误原因1价格格式变了比如从¥199.00变成199元解决用正则提取数字不要写死格式原因2价格是区间比如¥199.00-299.00解决特殊处理取最低价或最高价Excel报错原因1文件被占用解决先关闭Excel文件再运行流程原因2内存不足数据量太大解决装64位影刀或者用数据库循环报错原因1商品下架了元素找不到了解决用Try-Catch包住出错时跳过原因2页面刷新了相似元素列表失效了解决改用For次数循环在循环内重新获取元素列表反爬虫拦截原因1访问太频繁解决每次操作后随机等待2-5秒原因2被淘宝识别为爬虫解决用模拟鼠标移动、模拟键盘输入让人为操作更逼真总结做完这个电商价格监控系统你对影刀RPA的掌握就更深入了。价格监控的核心就是准确抓取价格、稳定存储数据、及时发送通知。后面你可以自己扩展加更多电商平台、加更多通知方式、加价格预测功能等等。记住RPA的价值在于自动化。只要你觉得某个操作是重复的、机械的就可以用RPA自动化。我做完价格监控后又做了订单自动同步、竞品价格分析、评价情感分析等等。都是基于这个价格监控系统扩展的。更多案例在影刀RPA学习主页 home.linyan.cloud 可以找到。#影刀RPA #RPA教程 #电商价格监控 #淘宝 #拼多多 #网页抓取 #自动化作者林焱
阅读完成 · 觉得有帮助?
咨询建站