- 是一个 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: XPath