
影刀RPA新手教程微信小程序自动化实战——元素定位与数据采集微信小程序的数据采集是影刀RPA最容易被劝退的场景之一。小程序跑在微信容器里不是标准浏览器元素定位方法完全不同。这篇就用一个真实项目带你搞定自动进入某电商小程序采集商品列表标题、价格、销量导出Excel。整套流程踩过的坑全部摊开。安装与环境配置影刀社区版装好后手机自动化是必须配置的。微信小程序没法用网页自动化直接操作——它不是网页是微信内的渲染容器。两条路路径一ADB真机操作。手机USB连电脑开发者模式开启设置→关于手机→连点7次版本号→开发者选项→USB调试打开。影刀里添加手机设备→选ADB模式→检测到设备后连接。安卓8以上才能用U2模式老的ADB模式稳定性差优先选U2。路径二安卓模拟器。雷电9或MuMu12装完微信登录小程序。模拟器分辨率设720×1280影刀连模拟器比连真机方便——不用USB线模拟器窗口固定不动元素位置不会因为手机摆放角度偏移。但模拟器性能差商品列表超过100条时容易卡顿。环境检查清单影刀版本≥4.7U2模式需要、ADB驱动正常、手机/模拟器分辨率720×1280、微信版本最新、小程序能正常打开。缺一个就别往下走先解决环境问题。详细环境配置步骤在 home.linyan.cloud 有图文指引。元素定位小程序四合一打法小程序的元素定位影刀提供四种方式每种都有适用场景和坑方式一捕获元素推荐首选影刀的捕获元素功能在小程序里和网页不同。打开小程序页面→影刀悬浮窗→点击捕获元素→移到目标元素上→点击。影刀会自动分析元素属性生成定位规则。小程序的元素层级通常只有3-4层比网页少得多捕获成功率较高。关键操作细节捕获时手别抖影刀的元素识别框很细手指稍微偏移就捕获到旁边的元素。手机屏幕小的建议用模拟器操作——模拟器窗口放大后点击精度高得多。捕获后必须编辑元素检查属性。小程序的class属性经常是随机生成的前缀如_3v2KJ每次小程序更新这些前缀就变了。编辑时把不稳定的class属性取消勾选只保留稳定的属性text内容、resource-id、type。resource-id在小程序里相对稳定是开发时写死的id。方式二XPath定位小程序底层是WebView能用XPath。但小程序的DOM结构比普通网页更扁XPath写法要简化。例子定位商品标题//view[contains(text,)]——按文本内容锚定比按层级路径稳。XPath编辑入口捕获元素后→编辑元素→切换到XPath模式→手动修改表达式。别在影刀的元素编辑界面里用智能推荐——小程序的DOM太特殊智能推荐经常给一个超长的绝对路径改版就废。方式三CSS选择器小程序里CSS选择器不太好用。小程序的组件用的是wx自定义组件class名经常是编译后的hash值不是开发者写的原始class。但有些小程序保留原始class这时候CSS写法比XPath简洁.product-price比//view[classproduct-price]短。判断你的目标小程序是否保留原始classF12调试模式→检查元素→看class属性值是否像product-price这种有意义的名字。如果是hash值如_2Sh75m放弃CSS改用XPath或文本匹配。方式四坐标点击兜底方案所有定位方式都搞不定时用坐标点击。影刀的鼠标点击指令坐标模式填写x/y坐标值。坐标怎么取影刀悬浮窗→获取坐标功能→移到目标元素→显示坐标值→复制填入指令。坐标点击的坑不同手机分辨率坐标不同。在720×1280上定位到的坐标(360, 800)到1080×1920上就得改成(540, 1200)。解决方案用比例计算xscreen_width0.5, yscreen_height0.625。影刀里用Python代码块获取屏幕尺寸再算坐标。变量与数据类型商品数据用字典存一条商品一个字典item { title: 夏季连衣裙, price: 89.9, sales: 2345, shop_name: XX女装旗舰店, item_url: , collect_time: 2026-07-01 }item_url在小程序里基本拿不到——小程序没有独立的URL商品页只能通过小程序内导航到达。如果你需要回溯商品唯一办法是存商品ID。商品ID有时藏在获取元素属性的data-item-id属性里不是所有小程序都有。列表变量存所有商品product_list []。每采集一条append进去。循环结束后用len(product_list)检查数量如果比预期少说明有元素定位失败被跳过了。字符串处理坑多小程序的价格文本经常带符号或起字样。89.9起→提取数字用正则(\d\.?\d*)。影刀的正则表达式指令输入文本填price_text正则填(\d\.?\d*)输出取第1组。销量文本已售2345同理正则已售(\d)。全局变量设计keyword搜索关键词、max_pages最大翻页数、output_pathExcel输出路径。全局变量在影刀的全局变量面板配置好处是改参数不用进流程代码。小程序换关键词搜索时只改keyword的值就行。流程控制小程序采集流程骨架打开微信 → 进入小程序 → 搜索keyword → 翻页采集 → 写入Excel核心循环结构For次数循环翻页max_pages从全局变量取。每页采集步骤获取当前页所有商品标题→获取相似元素列表(手机)指令获取当前页所有商品价格→同上循环组装字典→append到product_list翻页→点击下一页按钮或滑动到底部加载更多翻页方式取决于小程序设计有些有明确的下一页按钮坐标点击有些是滑动加载更多。滑动加载用影刀滑动屏幕指令方向从下往上滑模拟手指上滑加载新内容。滑动距离设屏幕高度的60%太短新内容不出来太长直接跳到底部。判断是否还有下一页If条件判断指令——检查下一页按钮元素是否存在或者检查滑动后product_list数量是否增加。如果数量不再增加说明到底了break退出循环。异常处理小程序闪退是最常见的问题。Try-Catch包裹每页采集逻辑Catch里写重新打开小程序的逻辑。闪退后从微信主界面重新进入小程序搜索关键词从上次中断的页码继续。页码用全局变量current_page记录每次翻页1。网页自动化在小程序场景的变通小程序不是标准网页打开网页指令不能用。但微信小程序有个调试入口微信开发者工具→远程调试→可以在PC上看到小程序的WebView。这个方法需要小程序开发者配合一般采集场景不现实。更实用的变通用微信PC版小程序。微信PC版打开小程序后影刀用桌面软件自动化模式操作——不是网页自动化而是桌面软件自动化指令集。桌面软件自动化的元素定位更依赖坐标和图像识别因为微信PC版的小程序窗口不是标准浏览器窗口。桌面软件自动化的关键指令获取窗口对象→指定微信窗口点击元素(桌面)→在微信窗口内操作输入文本(桌面)→在搜索框输入关键词获取元素文本(桌面)→读取商品信息桌面软件的元素捕获方式影刀悬浮窗切换到桌面模式→捕获微信窗口内的元素。成功率比手机模式高因为PC版小程序渲染更稳定。数据处理与导出采集数据清洗流程去空值product_list [x for x in product_list if x[title] ! and x[price] ! 0]。小程序偶尔返回空标题元素定位不准时获取到空白文本必须过滤掉。去重复小程序翻页时可能出现重复商品第一页末尾和第二页开头重叠。用列表推导式字典判断seen_titles set(),unique_list [x for x in product_list if x[title] not in seen_titles and not seen_titles.add(x[title])]。影刀里用Python代码块写这段逻辑更方便。价格标准化所有价格统一为浮点数去掉、“¥”、“起”、含税等干扰文本。用字符串替换指令链式处理先替换为空→再替换起为空→再转float。销量标准化已售2345→2345;已售1万→10000;已售2000人付款→2000。这些格式变体用正则统一处理(\d)万?匹配到万就乘10000。Excel导出用启动Excel→新建Sheet→循环写入启动Excel指令→创建新Excel对象写入单元格指令→循环product_list逐行写入title、price、sales、shop_name表头单独写一行标题、价格、销量、店铺、采集时间保存Excel指令→output_path路径保存写入时行列计算第1行是表头数据从第2行开始。行号row_index2循环从0开始列号对应字段顺序。影刀的写入单元格指令行和列都填数字不是A1这种Excel格式。鼠标键盘图像自动化小程序场景下鼠标键盘操作是主力。滑动操作影刀滑动屏幕(手机)指令参数起点坐标、终点坐标、持续时间。从屏幕底部(360,1200)滑到顶部(360,200)持续时间500毫秒。模拟真人手速太快小程序识别为机器操作直接弹验证。点击操作搜索框坐标、商品卡片坐标、翻页按钮坐标。所有坐标用比例值而非绝对值适配不同分辨率。Python代码块计算importxbot screenxbot.display.get_screen_size()click_xint(screen[width]*0.5)click_yint(screen[height]*0.15)长按操作小程序某些功能需要长按触发如复制商品ID。影刀鼠标长按(手机)指令持续时间设1.5秒。图像识别备用当元素定位完全失效时用图像识别找目标。影刀图像识别指令→截取目标区域的小图作为模板→在屏幕上匹配→返回坐标→坐标点击。制作模板图影刀悬浮窗→截图→裁剪出目标元素的小图→保存为PNG→填入指令的模板图片路径。小程序按钮经常变样式图像模板也得跟着更新。建议把模板图统一放在项目目录的/templates/子文件夹文件名用有意义的命名如search_button.png、next_page.png别用默认的截图命名。OCR文字识别小程序里有些文字是Canvas绘制的不是DOM元素元素获取指令拿不到。这种场景用OCR影刀OCR文字识别指令→指定屏幕区域→返回识别文本。OCR准确率约90%关键数据价格、销量需要二次校验。校验方法用正则判断OCR结果是否符合数字格式不符合就标记为OCR疑似错误手动复核。进阶技能Cookie保持与多小程序切换小程序的登录态靠微信自身维持不需要额外Cookie管理。但如果你要切换不同小程序有个关键操作返回微信主界面→搜索新小程序→进入。切换小程序的流程点击坐标(手机)→点击微信返回按钮坐标(左上角区域)等待指令→1秒让微信加载点击坐标(手机)→点击微信搜索按钮(右上角放大镜图标)填写输入框(手机)→输入新小程序名称点击坐标(手机)→点击搜索结果中的小程序入口等待指令→3秒等小程序加载多小程序场景如对比两个电商小程序价格用For列表循环遍历小程序名称列表每个小程序独立采集数据存到同一个product_list但platform字段不同。微信小程序的搜索框有个坑第一次搜索后搜索框会保留上次关键词。第二次搜索前必须清空搜索框。影刀填写输入框(手机)指令选清空后填写模式。但有些小程序搜索框不支持清空后填写——这时候先长按搜索框→全选→删除→再输入。平台实战微信PC版与手机端双方案方案一手机ADB/U2模式推荐连接稳定元素定位成功率70%。适合元素结构稳定的小程序如京东购物、拼多多小程序。操作步骤影刀→添加手机设备→ADB模式或U2模式连接影刀悬浮窗切换到手机模式捕获元素→编辑→取消不稳定属性获取相似元素列表(手机)批量获取商品数据翻页采集→写入Excel手机模式的坑屏幕小元素密获取相似元素列表有时拿到相邻元素的数据混在一起。解决缩小获取范围——先获取商品列表容器作为父元素再在父元素范围内获取子元素列表。方案二微信PC版桌面自动化备选微信PC版打开小程序后用桌面软件自动化。元素定位成功率约50%微信PC版的小程序窗口不是标准渲染但操作速度快PC比手机快3倍适合对精度要求不高只求速度的场景。PC版操作要点窗口对象获取→获取窗口对象→窗口标题填微信微信窗口内操作→所有指令都指定这个窗口对象搜索→桌面软件填写输入框→清空后填写关键词商品数据→桌面软件获取元素文本或OCR识别系统联动飞书表格与钉钉通知采集结果不只是存Excel还要推送到协作平台让团队及时看到。飞书多维表格写入影刀飞书多维表格扩展指令→写入记录。比Excel更方便团队协作——飞书表格多人实时可看可编辑。写入前在飞书建好多维表格字段名和product_list字典的键一一对应。飞书扩展指令配置App ID和App Secret从飞书开放平台获取表格token从表格URL提取。钉钉告警通知采集失败时钉钉群机器人发消息。企业微信群通知指令或HTTP请求指令POST到Webhook。消息格式小程序采集报告{date}\n成功{success_count}条失败{fail_count}条\n失败原因{error_msg}。告警阈值fail_count 5就发钉钉通知。企业微信通知同理影刀有内置企业微信群通知指令配置Webhook地址消息内容直接发送。Webhook地址获取企业微信群→群设置→群机器人→添加→复制Webhook。工程化与规范子流程拆分微信小程序采集拆成三个子流程——open_miniprogram打开微信进入小程序、collect_page单页采集逻辑、export_data清洗导出。每个子流程独立发版、独立调试。参数传递规范子流程间用输入参数和输出参数传递数据。open_miniprogram输出手机对象phone_objcollect_page输入phone_obj和keyword输出product_listexport_data输入product_list和output_path。参数类型必须指定——phone_obj是对象类型product_list是列表类型output_path是字符串。命名规范子流程名动词对象如collect_page、open_miniprogram变量名类型前缀用途如str_keyword、list_products、dict_item元素名平台用途如miniprogram_search_box、miniprogram_price_label日志规范关键节点写INFO日志元素定位失败写WARNING小程序闪退写ERROR。日志格式[{子流程名}] {操作}: {详情}。示例[collect_page] 获取价格: 成功获取15条, 失败2条。异常重试策略小程序闪退最多重试3次。重试前关闭微信重新打开——影刀关闭应用(手机)指令关闭微信→等待2秒→重新打开微信。3次重试全失败则记录ERROR日志并跳过当前小程序。定时任务配置影刀定时任务→设置每天9:00执行。注意定时任务只执行已发版的应用。改了流程后必须重新发版不然定时任务跑的还是旧版。这个坑太多人踩了。速查表与常见报错指令速查表操作指令模式关键参数添加手机设备设备管理ADB模式/U2模式设备ID捕获小程序元素手机模式捕获→编辑→取消不稳定属性批量获取商品获取相似元素列表(手机)元素组名属性innerText翻页滑动滑动屏幕(手机)起点(360,1200)终点(360,200)500ms搜索关键词填写输入框(手机)清空后填写模式OCR识别文字OCR文字识别屏幕区域坐标坐标点击鼠标点击(手机)x,y坐标窗口模式写入飞书表格飞书多维表格写入App ID, 表格token, 记录数据钉钉群通知企业微信群通知Webhook URL, 消息内容截图取证屏幕截图(手机)全屏/指定区域保存路径常见报错表报错原因解决手机设备连接失败ADB驱动未装/USB调试没开安装ADB驱动开启USB调试元素校验失败小程序更新class变了编辑元素取消class勾选用text定位获取相似元素返回空父元素范围太大缩小获取范围关联商品容器父元素滑动后数据没加载滑动距离不够/太快滑动距离60%屏高持续时间500ms小程序闪退内存不足/微信版本低模拟器内存设4G微信更新到最新| OCR识别率低 | 截图模糊/区域太大 | 缩小截图区域到单个文字块 || 坐标点击偏移 | 分辨率不同 | 用比例计算坐标别写绝对值 || Excel对象变量None | 没启动Excel赋值 | 添加启动Excel指令 || 钉钉Webhook报错 | URL过期/IP限制 | 重新获取Webhook检查网络 |手机自动化环境检查清单影刀版本≥4.7 ✓手机USB调试已开启 ✓ADB驱动正常命令行adb devices能看到设备 ✓微信版本最新 ✓小程序能正常打开 ✓模拟器分辨率720×1280 ✓手机屏幕锁定关闭防止锁屏中断 ✓小程序采集流程检查清单搜索框清空后填写 ✓元素不稳定属性已取消勾选 ✓翻页方式确认按钮/滑动 ✓重复商品去重逻辑到位 ✓价格文本正则处理 ✓闪退重试逻辑3次上限 ✓Excel输出路径存在 ✓钉钉告警阈值设置 ✓内容标签影刀RPA、微信小程序、元素定位、数据采集、手机自动化、ADB、OCR、Excel导出、桌面自动化作者林焱