跳转到内容

获取网页监听结果

获取网页监听结果 用于从「监听网页请求」捕获到的数据里,按网址提取目标接口的请求与响应信息,并保存到变量。它必须放在 监听网页请求 块内部,因为监听只在块执行期间生效。

指令标识:GetWebListenerResult
指令类型:网页指令
指令描述:提取监听期间捕获到指定接口的响应数据并保存到变量

工作流支持「可视化编排」和「代码编排」两种创建方式。获取网页监听结果 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。

方式怎么用适合人群
可视化编排(推荐先学)在监听块内拖入「获取网页监听结果」节点,填写网址过滤和输出变量大多数用户,零代码,适合快速搭建和调试
代码编排(Python)在脚本中调用 bots.getWebListenerResult(resourceUrl="...", outKey="...")熟悉代码、需要复用脚本或批量生成流程的用户

第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。

  • 已经用「监听网页请求」捕获了接口数据,需要把目标接口的响应提取出来。
  • 需要把接口返回的 JSON 保存为变量,供后续节点解析使用。
  • 一次操作触发了多个接口,需要按网址挑出关心的那一个。
  • 本节点必须放在 监听网页请求 块内部。
  • 触发请求的操作(点击、翻页等)要在本节点之前、且在块内执行。
  • 已经确认目标接口的网址特征,用于过滤。
  • 已经规划好输出变量名。
获取网页监听结果

下面用一个常见场景演示:提取查询接口的响应数据

  1. 添加 监听网页请求 块,设置资源类型和网址规则。
  2. 在块内放入 点击元素,点击查询触发接口。
  3. 在块内、点击之后放入 获取网页监听结果 节点。
  4. 网址过滤 填写目标接口特征,在 将结果保存至 填写变量名,例如 apiResult
  5. 运行后查看变量是否得到对应接口的响应数据。
界面名称代码属性名类型必填默认值说明
网址过滤resourceUrlString-按网址挑选要提取的请求。留空则返回监听期间捕获到的全部请求。匹配方式跟随监听块的「是否使用通配/正则」设置。
界面名称代码属性名类型必填说明
将结果保存至outKeyObject建议填写保存提取到的结果,按接口路径为键,值为该请求的详细信息(类型、网址、方法、请求头、请求体、响应状态、响应头、响应体等)。
  • 获取网页监听结果 节点运行结束后状态为成功。
  • 运行日志中没有参数缺失、超时或执行失败等错误。
  • 如果配置了输出变量,后续节点能够读取到符合预期的结果。
  • 后续节点能够继续执行,流程没有因为该节点异常中断。
现象 / 报错原文可能原因处理建议
日志报 no active WebRequestListener本节点放到了监听块外面把本节点放回 监听网页请求 块内部
日志报 listener is not active监听已经结束或未启动确认监听块仍在执行,且本节点在块内
结果为空触发操作在本节点之后,或网址过滤没命中确认触发请求的操作在本节点之前执行;放宽网址过滤

代码编排以 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)节点。

A: 监听只在「监听网页请求」块执行期间生效,捕获的数据也只在块内可读。放到块外会报「没有活动的监听」。

A: 会返回监听期间捕获到的全部请求,按接口路径组织。需要精确定位时建议填写网址特征。