Skip to content

循环次数设定(包括无限循环)及检测到页面内容才提取数据

Naibo Wang edited this page Dec 25, 2023 · 5 revisions

本教程示例任务文件(0.6.0及以上版本):256.json,可直接放入tasks文件夹内读取此文件。

需求:有时页面加载不完全导致内容显示不全,需要不断重新刷新页面直到想要的元素出现并采集数据,最多重试次数为15。

实现方法:

  1. 任务流程图左侧拖动一个循环操作到流程图:

2.1 如果想设置固定次数循环,就把循环类型设置为单个元素,元素内容为//body(因为//body是所有网页都有的内容),最多执行循环次数为15:

2.2 如果想设置无限循环一直检测直到检测到指定元素为止,就把循环类型改为JavaScript命令返回值,代码内容为return 1

  1. 左侧拖动一个判断条件操作到循环操作内部,并设置条件分支1的类型为当前页面包含元素,包含的元素XPath设置为自己想要等待的元素的XPath,如/html/body/div[2]/p条件分支2的条件类型为无条件

image

  1. 判断条件是从左往右判断的,即如果最左边的条件分支的判断条件满足,则执行最左边分支内的操作,否则判断从左向右第二个分支的条件是否满足,以此类推。因此,在条件分支1内部,即已经检测到自己想要的元素的情况下,添加自己想要进行的下一步操作,如提取数据,然后不要忘了在提取数据操作后添加自定义操作,类型为退出当前循环,以便提取数据完成后退出当前循环,而不是一直继续循环:

image

  1. 对于在条件分支2内部,即还没有检测到自己想要的元素的情况下,添加自定义操作,类型为刷新当前页面,即实现了当检测不到元素的时候刷新页面的功能:

image

全部流程:

image