ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

影刀RPA新手教程:四种循环指令的区别与选型——次数、相似元素、列表、条件

影刀RPA新手教程:四种循环指令的区别与选型——次数、相似元素、列表、条件 影刀RPA新手教程四种循环指令的区别与选型——次数、相似元素、列表、条件做网页采集十个人里有八个的第一道坎不是元素定位而是循环选错了。要么用次数循环去点一个不知道有多少项的列表点到第20个报错停机要么明明数据都在Excel里却非要循环相似元素去网页上找白白浪费半小时。我自己也踩过这个坑第一次做拼多多商品采集把循环相似元素和ForEach列表循环混着用结果写出来的数据整整错位了一页。这篇文章把影刀RPA里四种循环指令的区别讲透For次数循环、循环相似元素(web)、ForEach列表循环、While条件循环再加一个无限循环的用法。看完你就能对着场景直接选型不用再猜。如果你还没装影刀RPA去官网下载安装包双击安装后登录社区版账号第一次打开会提示安装浏览器插件点立即安装把Chrome或Edge的插件装上否则后面网页自动化全部会失败。界面左侧是指令面板中间是流程画布右侧是指令详情面板记住这三块就够了。四种循环指令的核心区别与选型表先给结论再展开。我把四种循环的适用场景、判断依据、常见坑整理成一张表日常选型直接对照指令名适用场景循环依据最大坑点For次数循环已知固定次数起始数到结束数结束数包含边界循环相似元素(web)网页同类元素逐个操作元素库里的相似组网页刷新后失效ForEach列表循环遍历列表变量列表每一项位置从0开始While条件循环次数不确定靠条件收口条件为真就继续忘记改变量成死循环选型逻辑一句话次数确定用For网页上抓用相似元素数据在变量里用ForEach什么都不知道就用While或无限循环加退出条件。For次数循环起始数、结束数、递增值三个参数For次数循环是对一组指令进行特定次数的循环操作参数只有三个起始数、结束数、递增值。实际操作在左侧指令面板搜索For次数循环拖进流程画布在右侧指令详情面板里起始数填1结束数填10递增值填2循环体里放一个【打印日志】指令运行后输出的是1、3、5、7、9。三个细节要记牢递增值可以是负数填-1就能实现倒序循环比如从10数到1结束数是包含在内的起始1结束10递增1会循环10次而不是9次循环体中间必须以【循环结束】指令封口漏掉会直接报IndentationError: expected an indented block典型场景翻页采集时已经知道共100页就从共100页文本里提取数字100然后For次数循环循环100次每次循环体里抓当前页数据再点击翻页按钮。循环相似元素(web)网页数据采集的主力指令循环相似元素(web)是依次循环网页中相似元素列表的每一项进行自动化操作做网页采集用得最多的一条指令。操作流程先点击顶部工具栏的捕获元素按钮浏览器自动跳转鼠标移到商品标题上出现橙色边框后点击确认此时影刀会自动识别出页面上所有结构相同的元素组成相似元素组。然后回到编辑器在指令详情面板选择网页对象和操作目标再选元素操作类型。元素操作有六种可选别只会用第一种获取元素对象拿到对象本身后面可以继续点击、悬停获取元素文本内容抓可见文字商品标题、价格都用它获取元素值抓输入框里的数值获取元素链接地址抓href商品详情页跳转用获取元素源代码抓整段网页源代码用来做二次解析获取元素属性抓href、src、class这类属性值高级设置里还有循环开始位置和循环结束位置位置从0开始计数结束位置填-1表示倒数第一项。比如页面顶部第一条是广告位不想抓就把开始位置设成1跳过它。ForEach列表循环遍历变量数据的唯一选择ForEach列表循环是依次循环列表中的每一项数据已经存在变量里的时候用它。列表参数两种填法选择之前创建的列表变量或者直接在Python输入模式下写标准列表比如[‘手机’, ‘耳机’, ‘充电器’]。建议勾选输出循环项的位置会输出一个从0开始的位置变量后面按下标去别的列表取对应数据全靠它。存储循环项至就是把当前这一项保存成变量循环体里直接引用。我的做法是关键词批量采集把50个搜索词存进列表ForEach列表循环逐个取出循环体里执行打开网页-输入关键词-点击搜索-抓取结果这一整套。这里配合的关键词XPath可以这么写# 捕获元素搜索结果列表里的商品标题循环相似元素的基准元素 //div[classsearch-result]//a[classitem-title] # 捕获元素搜索框ForEach循环里每个关键词轮流输入 //*[idsearch-input] # 模糊匹配查找包含next类名的翻页按钮 //*[contains(class,next)]While条件循环和无限循环不确定次数的收口方案While条件循环是当条件为真时对一组指令进行循环操作参数是对象1、关系、对象2三段式。关系下拉里可以选对象1大于对象2、“对象1包含对象2”、“对象1是空值等只需要一个对象时对象2可以缺省比如判断变量等于True”。官方示例的执行逻辑设置整数变量值为10While条件循环判断变量是否小于100成立就打印并让变量增加10直到条件不成立退出。实战里我最常用它做翻页设置变量是否还有下一页为True循环体里抓数据、点翻页当下一页按钮消失时把变量改成False。无限循环则是While的极端形态——条件永远为真靠【退出循环】指令动态收口。退出循环这条指令可以对For次数循环、ForEach列表循环、循环相似元素做动态控制典型用法是循环体里放一个【IF 条件】判断当前状态满足就执行退出循环不满足就继续。循环之外的配套知识定位、变量、异常一个都不能少循环选型只是流程控制这一环真正跑通一个采集流程还需要其他模块配合这里按优先级把重点捋一遍。元素定位上影刀RPA的自动捕获能解决八成场景剩下两成靠XPath和CSS选择器手写。XPath六种写法里最实用的是模糊匹配contains()和层级定位/…CSS选择器最常用的是.class和#id两者选型标准很简单元素有稳定的id或class用CSS结构复杂需要按文本或层级找就用XPath。变量与数据类型方面数字、字符串、列表、字典四类够用。字符串有索引和拼接字典取值时键不存在会报错两种方案先用键判断存在再取或者用dict.get()给默认值。做接口对接时还会碰到JSON标准链路是HTTP请求拿到响应文本转JSON对象操作完再转回文本。网页自动化里除了循环等待策略是第二大命门。页面没加载完就去抓抓到的永远是空。三种等待怎么配合翻页怎么处理异常怎么兜底都有固定套路。数据落地用【写入单元格】或批量写入指令存进Excel一行一个商品列标题第一行写死。写完顺手用文本指令做清洗价格里的¥和千分位逗号去掉再转数字。鼠标键盘和图像自动化是元素定位失灵时的备胎模拟模式适合常规点击驱动模式对付不受控的界面图像识别靠wait_appear等待图片出现再点击锚点九宫格加偏移量能精确定位图片周边区域。进阶技能里HTTP请求和Python协同最值钱。影刀RPA里Python图标要点亮才能写Python节点def函数封装清洗逻辑第三方库pip装好直接import。系统联动上飞书群机器人Webhook发采集完成通知飞书多维表格当数据库用定时任务设在凌晨低峰期跑第二天上班数据已经躺在表格里。工程化层面流程超过30条指令就该拆子流程用编号命名法如01_登录“02_采集”“03_写入”子流程参数传递用输入输出变量。调试时右键指令添加断点单步执行一行行看变量面板的值。版本选择上社区版每天30分钟执行时长跑大批量任务要么错峰拆分要么上创业版。易错速查循环相关的5个高频报错这几条都是我实际踩过或被群里问过无数次的出问题先对着查报IndentationError: expected an indented block流程里用了循环但缺少【循环结束】指令补上即可用了IF却缺【End If】同理循环到一半报未找到指定ID的元素网页在循环中被刷新相似元素失效改用For次数循环加下标重新获取列表取到的位置变量总是差1ForEach和循环相似元素的输出位置都从0开始计数别拿它直接当Excel行号用While循环永远停不下来循环体里忘了修改判断条件用到的变量检查变量名是否写对循环相似元素抓到的数据和页面对不上循环过程中页面元素数量发生了变化参考下面延伸阅读里的错位修复思路学习资源与延伸阅读循环是整个影刀RPA流程控制的骨架把它吃透后面学条件判断和异常处理都会快很多。我这两年积累的采集流程翻页、嵌套、去重的完整源码我放在代码仓库 home.linyan.cloud可以直接参考改造照着抄一遍比自己摸索快得多。#影刀RPA #RPA自动化 #循环操作 #流程控制 #网页自动化作者林焱
返回列表