-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
EXEC和EVAL用法示例
Naibo Wang edited this page Sep 5, 2023
·
9 revisions
此案例的任务示例JSON文件在这里:https://github.com/NaiboWang/EasySpider/blob/master/Examples/220.json
需求:一直不停的翻页的情况下,检测到页面//div[1]
元素的内容不再变化时停止循环翻页。
操作流程(0.5.0及以上版本):
- 在循环开始前添加自定义操作,执行模式为
exec操作
,自定义一个变量,设置一个随机的初始值:
self.myVar = "-1"
-
按照正常流程,设计循环点击下一页并采集数据的需求。
-
在循环内流程的内部最后,添加
提取数据
操作,提取//div[1]
元素的文本,字段名称可任意设置,如检测字段
:
(可选)4. 如果不需要保存检测字段的值到文件,可设置是否保存该字段
选项为否
:
- 在
提取数据
操作后,添加条件判断
操作,最左边的条件分支
的条件类型为eval操作
,内容如下,来判断新提取的字段内容是否和自定义的myVar
变量中保存的值一致:
self.myVar == self.outputParameters["检测字段"]
其中,self.outputParameters["检测字段"]
即表示字段检测字段
的最新提取到的值。
接下来,在此条件分支内部添加自定义操作
,模式为Break
,即跳出当前循环:
- 最后,设置
条件判断
操作中的的第二个条件分支,即从左往右数第二个条件分支,条件类型为无条件
,分支内部插入一个自定义操作
,执行模式为exec操作
,将自定义的myVar
变量值修改为当前页面指定元素的文本,这里即用self.outputParameters["字段名"]
来保存刚刚提取到的字段值:
self.myVar = self.outputParameters["检测字段"]
即完成了此需求。
全流程展示:
Click Pages
above to see more pages