亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

.net下功能強(qiáng)大的HTML解析庫(kù)HtmlAgilityPack,數(shù)據(jù)抓取必備

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

HtmlAgilityPack是一個(gè).NET平臺(tái)下的HTML解析庫(kù),它可以將HTML文本轉(zhuǎn)換為DOM文檔對(duì)象,方便我們對(duì)HTML文本進(jìn)行操作和分析。HtmlAgilityPack支持XPath語(yǔ)法,可以通過(guò)XPath表達(dá)式來(lái)獲取DOM節(jié)點(diǎn),同時(shí)還提供了一些方便的API,可以實(shí)現(xiàn)HTML文本的解析、修改、生成等功能。本文將詳細(xì)介紹HtmlAgilityPack的使用及使用方法。

一、HtmlAgilityPack的安裝

HtmlAgilityPack是一個(gè)NuGet包,可以通過(guò)Visual Studio的NuGet包管理器來(lái)安裝。具體步驟如下:

  1. 打開(kāi)Visual Studio,打開(kāi)要安裝HtmlAgilityPack的項(xiàng)目。

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

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

  4. 等待安裝完成。

安裝完成后,就可以在項(xiàng)目中使用HtmlAgilityPack了。

二、HtmlAgilityPack的使用

  1. 加載HTML文本

使用HtmlAgilityPack解析HTML文本的第一步是將HTML文本加載到一個(gè)HtmlDocument對(duì)象中??梢酝ㄟ^(guò)以下代碼來(lái)實(shí)現(xiàn):

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

其中,htmlText是要解析的HTML文本。LoadHtml方法會(huì)將HTML文本解析成一個(gè)DOM文檔對(duì)象,并存儲(chǔ)在doc對(duì)象中。

  1. 獲取DOM節(jié)點(diǎn)

HtmlAgilityPack提供了一些方法來(lái)獲取DOM節(jié)點(diǎn),例如GetElementById、GetElementsByTagName、selectSingleNode、selectNodes等。這些方法都接受一個(gè)XPath表達(dá)式作為參數(shù),用來(lái)指定要獲取的節(jié)點(diǎn)。以下是一些示例代碼:

// 獲取id為"content"的節(jié)點(diǎn)
HtmlNode contentNode = doc.GetElementById("content");
// 獲取所有的a標(biāo)簽
HtmlNodeCollection aNodes = doc.DocumentNode.selectNodes("//a");
// 獲取第一個(gè)p標(biāo)簽
HtmlNode pNode = doc.DocumentNode.selectSingleNode("//p");

其中,XPath表達(dá)式的語(yǔ)法與XML的XPath語(yǔ)法相同。在這里不再詳細(xì)介紹。

  1. 修改DOM節(jié)點(diǎn)

HtmlAgilityPack提供了一些方法來(lái)修改DOM節(jié)點(diǎn),例如SetAttributeValue、InnerHtml、OuterHtml等。以下是一些示例代碼:

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

HtmlAgilityPack還可以將DOM文檔對(duì)象轉(zhuǎn)換為HTML文本??梢酝ㄟ^(guò)以下代碼來(lái)實(shí)現(xiàn):

string newHtmlText = doc.DocumentNode.OuterHtml;

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

三、HtmlAgilityPack的功能實(shí)例

下面將通過(guò)一些具體的實(shí)例來(lái)演示HtmlAgilityPack的使用方法。

  1. 獲取頁(yè)面標(biāo)題

以下代碼演示了如何獲取頁(yè)面標(biāo)題:

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

其中,htmlText是要解析的HTML文本。首先,將HTML文本加載到一個(gè)HtmlDocument對(duì)象中。然后,通過(guò)XPath表達(dá)式“//title”獲取頁(yè)面標(biāo)題節(jié)點(diǎn)。最后,通過(guò)InnerHtml屬性獲取標(biāo)題的內(nèi)容。

  1. 獲取頁(yè)面中的所有圖片

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

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文本加載到一個(gè)HtmlDocument對(duì)象中。然后,通過(guò)XPath表達(dá)式“//img”獲取所有圖片節(jié)點(diǎn)。最后,遍歷所有圖片節(jié)點(diǎn),獲取每個(gè)節(jié)點(diǎn)的src屬性。

  1. 獲取頁(yè)面中的所有鏈接

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

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文本加載到一個(gè)HtmlDocument對(duì)象中。然后,通過(guò)XPath表達(dá)式“//a”獲取所有鏈接節(jié)點(diǎn)。最后,遍歷所有鏈接節(jié)點(diǎn),獲取每個(gè)節(jié)點(diǎn)的href屬性。

  1. 修改頁(yè)面中的所有鏈接

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

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文本加載到一個(gè)HtmlDocument對(duì)象中。然后,通過(guò)XPath表達(dá)式“//a”獲取所有鏈接節(jié)點(diǎn)。最后,遍歷所有鏈接節(jié)點(diǎn),將它們的href屬性修改為指定的鏈接。最后,通過(guò)OuterHtml屬性將修改后的DOM文檔對(duì)象轉(zhuǎn)換為HTML文本。

本文介紹了HtmlAgilityPack的使用及使用方法。HtmlAgilityPack是一個(gè)功能強(qiáng)大、易用性高的HTML解析庫(kù),可以方便地對(duì)HTML文本進(jìn)行操作和分析。通過(guò)本文的介紹,讀者可以了解HtmlAgilityPack的基本用法,并可以根據(jù)需要自行擴(kuò)展。


作者:架構(gòu)師老盧

來(lái)源:https://www.cnblogs.com/hanbing81868164/p/17856515.html



該文章在 2023/11/29 9:27:37 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved