Html Agility Pack (HAP)
是使用 C# 解析 HTML 的基本库。它也是本文中提到的其他库之一 Fizzler 的依赖项。HAP 比其他库更通用,允许您抓取网站并使用相同的库直接解析它们。
HAP 提供什么:
它可以通过HTTP请求自动获取HTML源文件,而其他库很少内置此功能。
与其他库相比,它提供了更清晰的结果。内联 HTML 通常会被删除,为您提供纯文本。
HAP 可用于新版本的 .NET,包括 .NET Core 3.1 和 .NET 5。
☝️ 如果您想了解更多信息,请查看我们关于 HTML 敏捷包的教程。
优点
HAP 是 C# 中最快的 HTML 解析器之一,与其他库进行基准测试时排名第一。结果包括从提供的 URL 检索 HTML 源。
它为您省去了删除未使用的内联HTML标签的麻烦。
它可以通过Fizzler进行扩展,本机将CSS选择器添加到库中。
它得到积极维护,经常更新和良好的文档。
它比其他库更直接,为想要快速处理某些内容的开发人员提供了出色的体验。
缺点
HAP 只允许您查询 XPath 和 HTML 标记。它不支持 CSS 选择器。
如果需要从内联 HTML 标记中检索数据,则在使用 Html Agility Pack 的更简洁的更改源时可能遇到困难。
可以使用 NuGet 包管理器安装 Html 敏捷包。
AngleSharp
为您提供了解析超文本源文档的功能,并且可以用作事实上的无头浏览器,因为它返回类似于最先进的浏览器的响应。自2013年以来,图书馆一直持续维护。
AngleSharp提供什么:
AngleSharp响应是原始的,如果您更喜欢不会改变结果的HTML解析器,这将非常有用。
AngleSharp是目前最具可扩展性的库之一,您可以使用许多替代库来使其更加健壮(AngleSharp.XPath和AngleSharp.Css,仅举几例)。
AngleSharp是与Html Agility Pack一起比较流行的HTML解析器库之一,也是维护最好的库之一。它可用于.NET Framework和.NET Standard。
优点
AngleSharp是目前最快的C# HTML解析器库之一,在基准测试中仅次于Html Agility Pack。基准测试包括检索 HTML 源代码的 HTTP 请求。
它返回原始 HTML 源而不是更改的源,使您可以更轻松地从 HTML 标记中检索各种数据。
AngleSharp有许多不同的版本,包括用于XPath支持的AngleSharp.XPath和用于增强CSS选择器支持的AngleSharp.Css。
它通过频繁的更新和良好的文档得到积极维护。
这是一个经得起时间考验的古老图书馆。
它提供了广泛的工具集,使开发人员可以更自由地做他们想做的事情。
缺点
AngleSharp仅提供本机HTML标签选择器支持。您需要安装单独的包才能使用 XPath 或 CSS 选择器进行查询。
它不会为您检索 HTML 源代码。相反,您必须使用 HTTP 客户端发出 HTTP 请求。
可以使用 NuGet 安装 AngleSharp,包括 AngleSharp.XPath。