获取元素HTML内容
获取元素HTML内容 用于读取某个网页元素的 HTML,并保存到变量。默认取包含元素自身标签的外部 HTML(outerHTML),也可以只取元素的内部 HTML(innerHTML)。常用于结构化解析、内容抽取等场景。
指令标识:GetElementHtml
指令类型:网页指令
指令描述:获取指定元素的 HTML 内容
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。获取元素HTML内容 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「获取元素HTML内容」节点,捕获元素、设置输出变量 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.getElementHtml(selector="...", outKey="html") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 需要拿到元素内部完整 HTML 结构做解析。
- 需要提取带标签的内容(如富文本、表格片段)。
- 单纯读纯文本不够用,要保留 HTML 结构。
如果只需要可见文本,请使用 获取文本;如果要读某个属性值,请使用 获取元素属性。
- 目标元素已经出现并渲染完成,必要时先用等待节点。
- 捕获的是包含目标结构的元素,不是过大的父容器。
- 想清楚要内部 HTML 还是外部 HTML。
- 如果元素在 iframe 中,请配置 iframe 页面定位器。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:读取某个区域的内部 HTML 用于解析。
- 确认页面已经打开,目标区域已渲染。
- 在读取前添加 等待元素存在。
- 添加 获取元素HTML内容 节点,捕获目标元素。
- 在 将结果保存至 填写变量名,例如
htmlContent。 - 运行后查看变量是否得到预期的 HTML 内容。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 元素选择器 | selector | String | 是 | - | 要读取 HTML 的元素。建议从元素库捕获。 |
| 是否包含外层标签 | includeOuterTag | Boolean | 否 | true | 为 true 取包含元素自身标签的外部 HTML(outerHTML);为 false 取内部 HTML(innerHTML)。默认 true。 |
| iframe 页面定位器 | frameSelector | String | 否 | - | 高级选项,目标元素在 iframe 内时填写。 |
| 查找元素高级配置 | findElementOptions | JSON | 否 | - | 高级选项,JSON 格式,可在其中配置查找元素的超时时间等参数(如 {"timeout": 5000}),单位毫秒。 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | String | 建议填写 | 保存读取到的 HTML 内容。 |
获取元素HTML内容节点运行结束后状态为成功。- 运行日志中没有参数缺失、超时或执行失败等错误。
- 如果配置了输出变量,后续节点能够读取到符合预期的结果。
- 后续节点能够继续执行,流程没有因为该节点异常中断。
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 节点报错:找不到目标元素(定位超时 / 元素未找到) | 页面没加载完成或定位失效 | 读取前先加等待元素。默认找不到元素会报错、节点失败;仅当节点「失败处理」设为「可选 / 继续」才会跳过 |
| 取到的内容包含/不含外层标签不符合预期 | 「是否包含外层标签」配置与预期不符 | 默认取外部 HTML(含外层标签);只要内部内容时把「是否包含外层标签」设为 false |
| 取到内容过多 | 捕获了过大的父容器 | 重新捕获更精确的目标元素 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 读取元素内部 HTMLhtml = 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。
Q2:和获取文本有什么区别?
Section titled “Q2:和获取文本有什么区别?”A: 获取文本 返回纯可见文本(不含标签);本指令返回 HTML(含标签结构),适合需要解析结构的场景。