跳到主要内容

提取HTML内容

从 HTML(一定程度上也支持 XML)里按 XPath 取出文本、属性或表格。内部用 HtmlAgilityPack,深入用法见其 文档

当前模块定义

sys:htmlExtract网络服务Action
标准模块
输入 9 · 输出 3 · 枚举 4

输入参数

  • 操作类型operationEnum必填
    填写 固定输入默认 extractText
    提取文本内容默认extractText
    提取表格内容extractTable
  • 源HTMLsourceText必填

    原始HTML内容,或网址,或根节点对象

    填写 输入或变量
  • 网页编码类型encodingText可选

    通过网址加载内容时,使用指定的编码。留空时默认为UTF8。

    填写 输入或变量
    自动检测 (加载两次auto
    GB2312编码gb2312
    UTF8编码utf-8
  • 节点XPathxpathText必填

    内容的XPath,详细说明请参考文档

    填写 输入或变量
  • 提取方式selectTargetEnum可选

    提取单个节点还是符合条件的所有节点。

    填写 固定输入默认 single
    第一个符合条件的节点默认single
    所有符合条件的节点all
  • 提取内容类型returnTypeEnum可选

    要提取的节点信息。

    填写 固定输入默认 InnerHtml
    5 个选项innerHtml 内部HTML、innerText 内部文本、outerHTML 节点全部HTML
    innerHtml 内部HTML默认InnerHtml
    innerText 内部文本InnerText
    outerHTML 节点全部HTMLOuterHtml
    Attribute 节点的某个属性Attribute
    节点对象Node
  • 属性名称attributeText可选

    仅在提取节点属性时有效。指定属性的名称。

    填写 输入或变量
  • 写入工作表对象writeToSheetObject可选

    将提取到的表格内容写入工作表对象中。

    填写 UseVarOnly
  • 失败后停止动作stopIfFailBoolean可选

    失败后是否停止动作

    填写 固定输入默认 true

输出参数

  • 步骤执行是否成功isSuccessBoolean

    步骤执行是否成功

  • 提取值valueAny

    提取的内容。请确保结果类型和变量类型匹配。

  • 根节点rootNodeAny

    整个HTML源内容对应的HtmlNode节点对象,可用于后续处理使用。

概述

源可以是 HTML 文本,也可以是 http / https 网址(模块会先下载)。同一网址短时间内多次提取会走缓存;更新很勤的页面请先用 HTTP请求 再提取,避免拿到旧数据。

提取HTML内容

从HTML代码中提取内容
操作类型
源HTML
 
原始HTML内容,或网址,或根节点对象
网页编码类型
通过网址加载内容时,使用指定的编码。留空时默认为UTF8。
节点XPath
 
内容的XPath,详细说明请参考文档
提取方式
提取单个节点还是符合条件的所有节点。
提取内容类型
要提取的节点信息。
属性名称
 
仅在提取节点属性时有效。指定属性的名称。
写入工作表对象
 
将提取到的表格内容写入工作表对象中。
步骤执行是否成功
-- 选择变量 --
步骤执行是否成功
提取值
-- 选择变量 --
提取的内容。请确保结果类型和变量类型匹配。
根节点
-- 选择变量 --
整个HTML源内容对应的HtmlNode节点对象,可用于后续处理使用。

参数说明

操作类型

  • 提取文本内容:按 XPath 取节点。
  • 提取表格内容:取表格,可写入工作表对象。

源HTML:HTML 代码、网址,或根节点对象。

网页编码类型:按网址下载时的编码。留空默认 UTF-8;选 自动检测 (加载两次) 会先探测编码再重新请求。乱码时改这里。

节点XPath:例如网页标题 html/head/title。找不到节点时,试把标签名改成小写

提取方式:第一个符合条件的节点,或所有符合条件的节点(结果是列表)。

提取内容类型

提取内容类型说明
innerHtml 内部HTML节点内部的 HTML
innerText 内部文本节点内部的纯文本
outerHTML 节点全部HTML含节点自身的 HTML
Attribute 节点的某个属性再填 属性名称
节点对象返回 HtmlNode

属性名称:仅提取内容类型为属性时有效。

写入工作表对象:提取表格时,把结果写入工作表。旧稿未写。

失败后停止动作:失败是否中止动作。默认开启。

输出

  • 步骤执行是否成功
  • 提取值:单个值或列表,变量类型要匹配。
  • 根节点:整份源对应的 HtmlNode,可交给下一步再提取。旧稿未写。

示例动作

步骤较多,用卡片打开后查看。

限制与排障

  • 短时间重复拉同一网址会命中缓存。
  • XPath 大小写不对时经常取不到节点。
  • 编码不对会乱码:试 autogb2312utf-8

XPath 教程:W3School知乎笔记。在线测试:xpather.com

相关链接

更新历史

  • 1.4.17 开始提供。
  • 20230704 增加支持 XML,以及使用小写 XPath 的说明。

更新于