介紹

  • 一套 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 平台。

底下是簡單範例,請在 Visual Studio 建立主控台專案

接著在 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:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *