介绍

  • 是一个 HTML 解析库
  • 支持用 XPath 来解析 html 的类库
  • 建议大家先简单了解一下 XPath
  • XPath 是通过一些路径表达式来获取 xml 中的节点值和属性值
  • 它是一个开源的.NET 库
  • 源码托管地址:http://htmlagilitypack.codeplex.com/

当前官方源码托管在 GitHub:https://github.com/zzzprojects/html-agility-pack

Html Agility Pack 是 .NET 生态最经典的开源 HTML 解析库,使用 C# 开发,广泛用于网页爬虫、HTML 内容提取、HTML 文档修改

最大优势:兼容不规范、残缺的 HTML(互联网绝大多数网页都不是标准闭合 XML,普通 XmlDocument 无法解析,HAP 可以自动容错)。

XPath 原本用于 XML 文档查询,HAP 将 HTML 加载为 DOM 树之后,同样支持 XPath 语法检索节点:

  • 通过路径表达式筛选标签、获取文本、提取属性
  • 常用方法:
    • SelectSingleNode("xpath表达式"):匹配第一个节点
    • SelectNodes("xpath表达式"):匹配全部节点

读者也可以不再需要手动下载源码,直接通过 NuGet 安装包

Install-Package HtmlAgilityPack

支持 .NET Framework /.NET Core /.NET 5~.NET9、MAUI 等主流.NET 平台。

下面是一个最简单的例子,读者可以创建一个vs 的控制台程序

然后在main函数中,添加如下代码

using HtmlAgilityPack;

//1.加载HTML文本
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml("网页html字符串");

//2.使用XPath查询元素
HtmlNode titleNode = htmlDoc.DocumentNode.SelectSingleNode("//title");
string title = titleNode?.InnerText;Code language: C++ (cpp)

就可以去解析html字符串了。

Next:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注