AngleSharp 用于 C# (.NET):完整指南及示例
\n\nAngleSharp 是一个现代、高性能的库,用于在 .NET 生态系统中解析和操作 HTML、CSS、XML 和 SVG 文档。它为 C# 开发人员提供了完全符合 W3C 标准的 DOM(文档对象模型)实现。与许多其他解析器不同,AngleSharp 不仅仅从字符串中提取数据——它构建了一个完整的 DOM 树,您可以像在浏览器中一样操作它:通过选择器查找元素、修改属性、添加或删除节点、将结果序列化回 HTML。
\n\n为什么需要这个库?在现代 Web 开发和自动化中,经常需要以编程方式分析 HTML 页面。这可能包括用于分析的数据解析、网络爬虫(从网站提取内容)、Web 应用程序测试、创建静态站点生成器,甚至编写自己的浏览器引擎。AngleSharp 非常适合这些任务,因为它完全用 C# 编写,没有外部依赖(除了 .NET Standard),并且比使用 HtmlAgilityPack 配合正则表达式快得多。此外,该库支持 CSS 选择器,使得任何 Web 开发人员都能直观地导航 DOM 树。
\n\nAngleSharp 的另一个重要优势是其模块化和可扩展性。您可以添加额外的包来处理 CSS、JavaScript 引擎(例如 Jint)或解析 SVG。该库得到社区的积极维护,拥有详细的文档,并被许多公司用于生产环境。在本指南中,我们将详细介绍安装、主要方法和类,并提供一个解析网页的真实示例。
\n\n安装
\n\nAngleSharp 通过 NuGet(.NET 的包管理器)分发。可以通过两种方式安装:
\n\n通过 .NET CLI(推荐)
\ndotnet add package AngleSharp\n\n通过 Visual Studio 中的 Package Manager Console
\nInstall-Package AngleSharp\n\n要使用 CSS 解析,请额外安装包:
\ndotnet add package AngleSharp.Css\n\n安装后,在代码中添加 using 指令:
\nusing AngleSharp;\nusing AngleSharp.Dom;\nusing AngleSharp.Html.Parser;\n\n快速入门——最小工作示例
\n\n让我们编写一个最简单的程序,加载 HTML 字符串并从中提取标题(<h1> 标签):
\n\nusing AngleSharp;\nusing AngleSharp.Html.Parser;\n\n// 1. 创建解析器\nvar parser = new HtmlParser();\n\n// 2. 将 HTML 字符串解析为 DOM 文档\nvar html = @"<!DOCTYPE html>\n<html>\n<head><title>测试页面</title></head>\n<body>\n <h1>你好,AngleSharp!</h1>\n <p>这是一个段落文本。</p>\n</body>\n</html>";\n\nvar document = parser.ParseDocument(html);\n\n// 3. 查找 h1 元素并输出其文本\nvar h1 = document.QuerySelector("h1");\nConsole.WriteLine(h1?.TextContent); // 输出:你好,AngleSharp!\n\n// 4. 输出整个 HTML(序列化)\nConsole.WriteLine(document.DocumentElement.OuterHtml);\n\n此示例演示了使用该库的基本工作流程:解析 → 查找元素 → 提取数据。请注意,QuerySelector 方法接受 CSS 选择器,这非常方便。
主要方法、类和接口
\n\nAngleSharp 提供了丰富的 API。以下是您在 90% 的情况下会需要的 8 个关键元素。
\n\n1. HtmlParser——用于解析的主要类
\n签名:
图书馆中也有
推荐