跳转到内容

获取元素HTML内容

获取元素HTML内容 用于读取某个网页元素的 HTML,并保存到变量。默认取包含元素自身标签的外部 HTML(outerHTML),也可以只取元素的内部 HTML(innerHTML)。常用于结构化解析、内容抽取等场景。

指令标识:GetElementHtml
指令类型:网页指令
指令描述:获取指定元素的 HTML 内容

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

方式怎么用适合人群
可视化编排(推荐先学)拖入「获取元素HTML内容」节点,捕获元素、设置输出变量大多数用户,零代码,适合快速搭建和调试
代码编排(Python)在脚本中调用 bots.getElementHtml(selector="...", outKey="html")熟悉代码、需要复用脚本或批量生成流程的用户

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

  • 需要拿到元素内部完整 HTML 结构做解析。
  • 需要提取带标签的内容(如富文本、表格片段)。
  • 单纯读纯文本不够用,要保留 HTML 结构。

如果只需要可见文本,请使用 获取文本;如果要读某个属性值,请使用 获取元素属性

  • 目标元素已经出现并渲染完成,必要时先用等待节点。
  • 捕获的是包含目标结构的元素,不是过大的父容器。
  • 想清楚要内部 HTML 还是外部 HTML。
  • 如果元素在 iframe 中,请配置 iframe 页面定位器。
获取元素HTML内容

下面用一个常见场景演示:读取某个区域的内部 HTML 用于解析

  1. 确认页面已经打开,目标区域已渲染。
  2. 在读取前添加 等待元素存在
  3. 添加 获取元素HTML内容 节点,捕获目标元素。
  4. 将结果保存至 填写变量名,例如 htmlContent
  5. 运行后查看变量是否得到预期的 HTML 内容。
界面名称代码属性名类型必填默认值说明
元素选择器selectorString-要读取 HTML 的元素。建议从元素库捕获。
是否包含外层标签includeOuterTagBooleantruetrue 取包含元素自身标签的外部 HTML(outerHTML);为 false 取内部 HTML(innerHTML)。默认 true
iframe 页面定位器frameSelectorString-高级选项,目标元素在 iframe 内时填写。
查找元素高级配置findElementOptionsJSON-高级选项,JSON 格式,可在其中配置查找元素的超时时间等参数(如 {"timeout": 5000}),单位毫秒。
界面名称代码属性名类型必填说明
将结果保存至outKeyString建议填写保存读取到的 HTML 内容。
  • 获取元素HTML内容 节点运行结束后状态为成功。
  • 运行日志中没有参数缺失、超时或执行失败等错误。
  • 如果配置了输出变量,后续节点能够读取到符合预期的结果。
  • 后续节点能够继续执行,流程没有因为该节点异常中断。
现象可能原因处理建议
节点报错:找不到目标元素(定位超时 / 元素未找到)页面没加载完成或定位失效读取前先加等待元素。默认找不到元素会报错、节点失败;仅当节点「失败处理」设为「可选 / 继续」才会跳过
取到的内容包含/不含外层标签不符合预期「是否包含外层标签」配置与预期不符默认取外部 HTML(含外层标签);只要内部内容时把「是否包含外层标签」设为 false
取到内容过多捕获了过大的父容器重新捕获更精确的目标元素

代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。

# 读取元素内部 HTML
html = bots.getElementHtml(
selector="//*[@id='content']",
outKey="htmlContent",
)
print(html)

读取包含元素自身标签的外部 HTML:

outer = bots.getElementHtml(
selector="//*[@id='content']",
includeOuterTag="true",
outKey="outerHtml",
)

如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。

Q1:内部 HTML 和外部 HTML 有什么区别?

Section titled “Q1:内部 HTML 和外部 HTML 有什么区别?”

A: 内部 HTML(innerHTML)只包含元素内部的内容,不含元素自身标签;外部 HTML(outerHTML)包含元素自身标签。默认取外部 HTML(includeOuterTag 默认为 true),只需要内部内容时把「是否包含外层标签」设为 false

A: 获取文本 返回纯可见文本(不含标签);本指令返回 HTML(含标签结构),适合需要解析结构的场景。