获取网页监听结果
获取网页监听结果 用于从「监听网页请求」捕获到的数据里,按网址提取目标接口的请求与响应信息,并保存到变量。它必须放在 监听网页请求 块内部,因为监听只在块执行期间生效。
指令标识:GetWebListenerResult
指令类型:网页指令
指令描述:提取监听期间捕获到指定接口的响应数据并保存到变量
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。获取网页监听结果 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 在监听块内拖入「获取网页监听结果」节点,填写网址过滤和输出变量 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.getWebListenerResult(resourceUrl="...", outKey="...") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 已经用「监听网页请求」捕获了接口数据,需要把目标接口的响应提取出来。
- 需要把接口返回的 JSON 保存为变量,供后续节点解析使用。
- 一次操作触发了多个接口,需要按网址挑出关心的那一个。
- 本节点必须放在 监听网页请求 块内部。
- 触发请求的操作(点击、翻页等)要在本节点之前、且在块内执行。
- 已经确认目标接口的网址特征,用于过滤。
- 已经规划好输出变量名。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:提取查询接口的响应数据。
- 添加 监听网页请求 块,设置资源类型和网址规则。
- 在块内放入 点击元素,点击查询触发接口。
- 在块内、点击之后放入 获取网页监听结果 节点。
- 在 网址过滤 填写目标接口特征,在 将结果保存至 填写变量名,例如
apiResult。 - 运行后查看变量是否得到对应接口的响应数据。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 网址过滤 | resourceUrl | String | 否 | - | 按网址挑选要提取的请求。留空则返回监听期间捕获到的全部请求。匹配方式跟随监听块的「是否使用通配/正则」设置。 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | Object | 建议填写 | 保存提取到的结果,按接口路径为键,值为该请求的详细信息(类型、网址、方法、请求头、请求体、响应状态、响应头、响应体等)。 |
获取网页监听结果节点运行结束后状态为成功。- 运行日志中没有参数缺失、超时或执行失败等错误。
- 如果配置了输出变量,后续节点能够读取到符合预期的结果。
- 后续节点能够继续执行,流程没有因为该节点异常中断。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
日志报 no active WebRequestListener | 本节点放到了监听块外面 | 把本节点放回 监听网页请求 块内部 |
日志报 listener is not active | 监听已经结束或未启动 | 确认监听块仍在执行,且本节点在块内 |
| 结果为空 | 触发操作在本节点之后,或网址过滤没命中 | 确认触发请求的操作在本节点之前执行;放宽网址过滤 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
本指令需配合 监听网页请求 在监听生效期间使用,且要在触发请求之后调用:
# 1) 启动监听bots.webRequestListener(resourceTypes="xhr,fetch", resourceUrls="/api/order/query")
# 2) 触发请求bots.clickElementMixed(selector="//button[text()='查询']")
# 3) 提取目标接口数据result = bots.getWebListenerResult( resourceUrl="/api/order/query", outKey="apiResult",)print(result)如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:为什么必须放在监听块内?
Section titled “Q1:为什么必须放在监听块内?”A: 监听只在「监听网页请求」块执行期间生效,捕获的数据也只在块内可读。放到块外会报「没有活动的监听」。
Q2:网址过滤留空会怎样?
Section titled “Q2:网址过滤留空会怎样?”A: 会返回监听期间捕获到的全部请求,按接口路径组织。需要精确定位时建议填写网址特征。