绝顶之上

会当凌绝顶,一览众山小。

使用 Html Agility Pack 解析 HTML 文档

发布日期:

在 .NET 平台下,有非常多优秀的 HTML 解析库,其中具有代表性的是 Html Agility Pack,简称 HAP。引用官方的自述:

HAP is an HTML parser written in C# to read/write DOM and supports plain XPATH or XSLT.

使用 XPATH 来获取目标文本可以让程序简洁明了,例如,现在获取博客右栏的最新文章列表:

using HtmlAgilityPack;

var httpClient = new HttpClient();
var homePage = await httpClient.GetStringAsync("http://jueding.top/");

var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(homePage);

var hotPostNodes = htmlDoc.DocumentNode.SelectNodes("//div[@id=\"widget-tabs-4-hots\"]//li//h4");
var hotPostTitles = from hotPostNode in hotPostNodes select hotPostNode.InnerText.Trim();

Console.WriteLine("Host Post Title: ");
Console.WriteLine(String.Join("\n", hotPostTitles));

下面通过几个例子,简单说明 XPATH 使用:

PS:在浏览器页面中打开上下文菜单,进入 审查元素(检查) 项,然后使用快捷键 Ctrl+F 进行搜索,即可测试 XPATH。