# 影刀RPA实操指南:翻页逻辑的3种实

影刀RPA实操指南:翻页逻辑的3种实现方式——按钮判断/URL拼接/滚动加载

采集多页数据时,翻到第5页就停了,或者一直翻下去停不下来。
原因:没搞清楚网站的翻页机制。
三种核心翻页逻辑

  • 有“下一页”按钮 → 按钮判断法
  • URL里有页码参数 → URL拼接法
  • 滚动到底部自动加载 → 滚动加载法

picture.image

一、按钮判断法(最通用,覆盖90%的网站)

适用场景:分页有明确的“下一页”按钮,点击后刷新整个页面或局部加载。

picture.image 核心思路:循环判断“下一页”按钮是否存在,存在就点,不存在就结束。

picture.image

操作步骤

  1. 捕获“下一页”按钮元素。
  2. 用“条件循环”包裹翻页逻辑。
  3. 循环条件:判断元素是否存在('下一页按钮') == True
  4. 循环体内:点击下一页 → 等待新内容出现 → 采集数据。
# 影刀指令序列(标准写法)

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/18cc36abb0fa488a9e3c391d7ea1b864~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781133681&x-signature=90Xa%2FotASMXxzo7e6WYI%2FwZVtWs%3D)

# 采集第一页数据(先采第一页)

# 条件循环开始(当下一页按钮存在时循环)
#   循环条件:{下一页存在} == True

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/0fc066f5ee9f49e0851da5b149dbaa94~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781133681&x-signature=oLAsMwdPkPRXzZP4yzbMFsPA0No%3D)

#   1. 鼠标点击“下一页”按钮(模式:模拟点击)

#   2. 固定等待 1 秒(可选,给页面反应时间)


![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/897525e3b3904819a698cb6f750facc7~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781133681&x-signature=5PJ1PpRSKcxiCIa9FO%2BOojp8E%2FY%3D)
#   3. 等待元素出现(新页面的标志元素,如第一行商品)
#      超时时间:5秒

#   4. 采集当前页数据


#   5. 更新判断:再次判断“下一页”按钮是否存在
#      (放在循环末尾,用于下一次循环条件判断)

# 条件循环结束

容易踩的坑

  • 最后一页“下一页”按钮可能变成灰色不可点,但元素依然存在。
    解决:判断时不仅要存在,还要可点击。可以用“获取元素属性”拿 disabled 属性。
  • 点击后页面刷新慢,等待时间不够。
    解决:用“等待元素出现”(新页面的独特元素)而不是固定等待。

二、URL拼接法(速度最快,适合规则翻页)

适用场景:翻页时URL有规律变化,如:

  • https://xxx.com/page/1page/2page/3
  • https://xxx.com?page=1?page=2

核心思路:不用点击按钮,直接修改URL打开新页码。

操作步骤

  1. 观察URL规律,确定页码参数位置。
  2. 获取总页数(或设置最大页数)。
  3. 用“固定次数循环”从第1页循环到第N页。
  4. 用字符串拼接生成新URL,用“打开网页”指令跳转。
# 示例:URL 为 https://shop.com/list?page=1

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/f855463b37c94493981183c40842d247~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781133681&x-signature=A5382f0wh0McWA7Bk8Qyg4OPC3c%3D)

# 1. 设置总页数为 {total_pages}(可从页面提取或手动填)

# 2. 固定次数循环,循环次数 = {total_pages}
#    循环变量:{current_page} 从1开始

# 3. 拼接URL
#    基础URL:https://shop.com/list?page=
#    新URL:{base_url}{current_page}
#    用“字符串拼接”指令或“计算表达式”

# 4. 打开网页(URL = {new_url})

# 5. 等待元素出现(列表容器)

# 6. 采集当前页数据

# 7. 循环结束

优势

  • 不依赖“下一页”按钮,避免元素定位失败。
  • 可以随机跳页(如只采集第1,3,5页)。
  • 速度快(不需要等待点击和页面切换动画)。

注意:部分网站翻页URL不变(伪静态或AJAX加载),URL拼接法无效。


picture.image

三、滚动加载法(处理无限滚动)

picture.image 适用场景:抖音、小红书、微博等瀑布流,滚动到底部自动加载新内容,没有“下一页”按钮。

picture.image 核心思路:模拟滚动到底部 → 等待新内容出现 → 重复直到没有新内容。

操作步骤

  1. 捕获一个“加载更多”的提示元素(如“正在加载中”),或判断页面高度变化。
  2. 用“条件循环”控制滚动次数。
  3. 循环体内:滚动到底部 → 等待新内容加载 → 判断是否到底。
# 无限滚动采集模板

# 1. 设置变量 {last_height} = 0
# 2. 设置变量 {no_new_count} = 0(连续无新内容的次数)

# 条件循环(当 {no_new_count} < 3 时继续)

#   3. 滚动页面到底部
#      指令:“滚动窗口”或“滚动元素到底部”

#   4. 固定等待 1.5 秒(等待加载)

#   5. 获取当前页面高度(用“执行JS”指令)
#      JS代码:return document.body.scrollHeight
#      输出到变量 {current_height}

#   6. 如果 {current_height} == {last_height}
#         {no_new_count} = {no_new_count} + 1
#      否则
#         {no_new_count} = 0
#         {last_height} = {current_height}

#   7. 采集当前页面新出现的元素
#      注意:需要记录已采集的ID,避免重复

# 循环结束

影刀里的滚动指令

  • 指令面板搜索“滚动”,选择“滚动窗口”(滚动整个页面)。
  • 方向选“到底部”,方式选“平滑滚动”或“直接滚动”。

判断是否到底的简易方法: 捕获一个“没有更多内容”的提示元素,如“已经到底了”。
用“判断元素是否存在”,出现则跳出循环。


四、三种方法对比选型

方法适用场景优点缺点
按钮判断法有明确下一页按钮通用性强,不依赖URL规律依赖按钮元素定位
URL拼接法URL包含页码参数速度快,可随机跳页URL无规律时无效
滚动加载法瀑布流无限滚动模拟真实用户行为需要处理重复数据

决策树

是否有“下一页”按钮?
  ├─ 是 → 按钮判断法
  └─ 否 → 继续判断

URL是否有页码参数(如?page=2)?
  ├─ 是 → URL拼接法
  └─ 否 → 滚动加载法(大概率)

五、实战:混合使用按钮判断+URL拼接

场景:列表页有“下一页”按钮,但点击后URL也会变(如从 ?page=1?page=2)。
可以用URL拼接法快速跳转,同时用按钮判断法做兜底。

# 混合法流程

# 1. 获取总页数(从页面提取“共23页”)

# 2. 固定次数循环,次数=总页数

# 3. 采集当前页数据(直接用当前URL)

# 4. 如果不是最后一页,拼接下一页URL
#    新URL = base_url + "?page=" + {current_page+1}

# 5. 打开网页(新URL)

# 6. 等待元素出现(列表容器)

# 7. (可选)校验当前页码是不是预期的,不是则用按钮点击重试

六、常见问题速查

问题原因解决方法
按钮判断法死循环“下一页”按钮一直存在(最后一页变灰但存在)增加判断:按钮是否包含“disabled”属性
URL拼接法打开后内容不对需要带Cookie或Referer先用打开网页指令保持会话
滚动加载法重复采集每次滚动后采集全部列表,没去重记录已采集的ID(如商品ID),只采新的
滚动加载永远加载不完滚动太快,触发反爬增加滚动间隔(2~3秒),或随机停顿
翻到第2页元素定位失败页面结构变化(如class加了“current”)换用更通用的XPath,避免依赖页码相关class

影刀专属操作清单

操作精确指令/位置说明
条件循环流程控制 → 条件循环配合元素存在判断
判断元素是否存在流程控制 → 判断元素是否存在超时设0.5秒
滚动窗口指令搜索“滚动窗口”滚动整个页面到底部
执行JS指令搜索“执行JavaScript”获取页面高度
字符串拼接指令搜索“字符串拼接”生成新URL
打开网页浏览器指令 → 打开网页用拼接好的URL

版本差异:社区版“执行JavaScript”指令可用,但JS代码写错不会报详细错误。先在浏览器控制台调试好再贴进去。


推荐资源

  • 影刀官方模板:搜索“翻页采集(按钮判断)”和“翻页采集(URL拼接)”
  • 影刀学院视频:《翻页逻辑详解——三种方式一次学会》(约20分钟)
  • 实操练习:找一个新闻网站(有下一页按钮),分别用三种方式实现翻10页,对比速度和稳定性

最后一句:翻页是采集流程的心脏。
先看URL规律,有规律用拼接法(最快);
没规律找按钮,用按钮判断法(最稳);
按钮也没有,那就是无限滚动,用滚动加载法(最复杂但最真实)。


作者:林焱

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

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