欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

.net下功能強大的HTML解析庫HtmlAgilityPack,數據抓取必備

freeflydom
2023年11月29日 9:21 本文熱度 747

HtmlAgilityPack是一個.NET平臺下的HTML解析庫,它可以將HTML文本轉換為DOM文檔對象,方便我們對HTML文本進行操作和分析。HtmlAgilityPack支持XPath語法,可以通過XPath表達式來獲取DOM節點,同時還提供了一些方便的API,可以實現HTML文本的解析、修改、生成等功能。本文將詳細介紹HtmlAgilityPack的使用及使用方法。

一、HtmlAgilityPack的安裝

HtmlAgilityPack是一個NuGet包,可以通過Visual Studio的NuGet包管理器來安裝。具體步驟如下:

  1. 打開Visual Studio,打開要安裝HtmlAgilityPack的項目。

  2. 在“解決方案資源管理器”中右鍵單擊項目,選擇“管理NuGet程序包”。

  3. 在“NuGet程序包管理器”中搜索“HtmlAgilityPack”,選擇“安裝”。

  4. 等待安裝完成。

安裝完成后,就可以在項目中使用HtmlAgilityPack了。

二、HtmlAgilityPack的使用

  1. 加載HTML文本

使用HtmlAgilityPack解析HTML文本的第一步是將HTML文本加載到一個HtmlDocument對象中。可以通過以下代碼來實現:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlText);

其中,htmlText是要解析的HTML文本。LoadHtml方法會將HTML文本解析成一個DOM文檔對象,并存儲在doc對象中。

  1. 獲取DOM節點

HtmlAgilityPack提供了一些方法來獲取DOM節點,例如GetElementById、GetElementsByTagName、selectSingleNode、selectNodes等。這些方法都接受一個XPath表達式作為參數,用來指定要獲取的節點。以下是一些示例代碼:

// 獲取id為"content"的節點
HtmlNode contentNode = doc.GetElementById("content");
// 獲取所有的a標簽
HtmlNodeCollection aNodes = doc.DocumentNode.selectNodes("//a");
// 獲取第一個p標簽
HtmlNode pNode = doc.DocumentNode.selectSingleNode("//p");

其中,XPath表達式的語法與XML的XPath語法相同。在這里不再詳細介紹。

  1. 修改DOM節點

HtmlAgilityPack提供了一些方法來修改DOM節點,例如SetAttributeValue、InnerHtml、OuterHtml等。以下是一些示例代碼:

// 修改id為"content"的節點的class屬性
contentNode.SetAttributeValue("class", "new-class");
// 修改第一個p標簽的內容
pNode.InnerHtml = "這是新的內容";
// 修改第一個a標簽的href屬性
HtmlNode aNode = aNodes[0];
aNode.SetAttributeValue("href", "http://www.example.com");
  1. 生成HTML文本

HtmlAgilityPack還可以將DOM文檔對象轉換為HTML文本。可以通過以下代碼來實現:

string newHtmlText = doc.DocumentNode.OuterHtml;

其中,OuterHtml屬性返回DOM文檔對象的HTML文本表示。

三、HtmlAgilityPack的功能實例

下面將通過一些具體的實例來演示HtmlAgilityPack的使用方法。

  1. 獲取頁面標題

以下代碼演示了如何獲取頁面標題:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlText);
HtmlNode titleNode = doc.DocumentNode.selectSingleNode("//title");
string title = titleNode.InnerHtml;

其中,htmlText是要解析的HTML文本。首先,將HTML文本加載到一個HtmlDocument對象中。然后,通過XPath表達式“//title”獲取頁面標題節點。最后,通過InnerHtml屬性獲取標題的內容。

  1. 獲取頁面中的所有圖片

以下代碼演示了如何獲取頁面中的所有圖片:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlText);
HtmlNodeCollection imgNodes = doc.DocumentNode.selectNodes("//img");
foreach (HtmlNode imgNode in imgNodes)
{
    string src = imgNode.GetAttributeValue("src", "");
    Console.WriteLine(src);
}

首先,將HTML文本加載到一個HtmlDocument對象中。然后,通過XPath表達式“//img”獲取所有圖片節點。最后,遍歷所有圖片節點,獲取每個節點的src屬性。

  1. 獲取頁面中的所有鏈接

以下代碼演示了如何獲取頁面中的所有鏈接:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlText);
HtmlNodeCollection aNodes = doc.DocumentNode.selectNodes("//a");
foreach (HtmlNode aNode in aNodes)
{
    string href = aNode.GetAttributeValue("href", "");
    Console.WriteLine(href);
}

首先,將HTML文本加載到一個HtmlDocument對象中。然后,通過XPath表達式“//a”獲取所有鏈接節點。最后,遍歷所有鏈接節點,獲取每個節點的href屬性。

  1. 修改頁面中的所有鏈接

以下代碼演示了如何將頁面中的所有鏈接修改為指定的鏈接:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlText);
HtmlNodeCollection aNodes = doc.DocumentNode.selectNodes("//a");
foreach (HtmlNode aNode in aNodes)
{
    aNode.SetAttributeValue("href", "http://www.example.com");
}
string newHtmlText = doc.DocumentNode.OuterHtml;

首先,將HTML文本加載到一個HtmlDocument對象中。然后,通過XPath表達式“//a”獲取所有鏈接節點。最后,遍歷所有鏈接節點,將它們的href屬性修改為指定的鏈接。最后,通過OuterHtml屬性將修改后的DOM文檔對象轉換為HTML文本。

本文介紹了HtmlAgilityPack的使用及使用方法。HtmlAgilityPack是一個功能強大、易用性高的HTML解析庫,可以方便地對HTML文本進行操作和分析。通過本文的介紹,讀者可以了解HtmlAgilityPack的基本用法,并可以根據需要自行擴展。


作者:架構師老盧

來源:https://www.cnblogs.com/hanbing81868164/p/17856515.html



該文章在 2023/11/29 9:27:37 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved