發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導(dǎo)圖
隨筆
相冊(cè)
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
HtmlAgilityPack是一個(gè)開源的解析HTML元素的類庫(kù),最大的特點(diǎn)是可以通過(guò)XPath來(lái)解析HMTL,如果您以前用C#操作過(guò)XML,那么使用起HtmlAgilityPack也會(huì)得心應(yīng)手。目前最新版本為1.4.6,下載地址如下:
http://htmlagilitypack./
下面以一個(gè)簡(jiǎn)單的例子來(lái)介紹下HtmlAgilityPack的使用,對(duì)于Asp.Net程序開發(fā)的網(wǎng)站要做模擬登錄的時(shí)候,除了要知道用戶名文本框和密碼文本框的name屬性值外,還需要知道頁(yè)面的__VIEWSTATE、__EVENTVALIDATION這兩個(gè)隱藏控件的值,以及提交按鈕的name屬性,下面看看怎樣使用HtmlAgilityPack來(lái)獲得這個(gè)額外的值。
1、在項(xiàng)目中添加對(duì)HtmlAgilityPack.dll的引用
2、在Aspx頁(yè)面中放幾個(gè)文本框控件和一個(gè)按鈕控件
3、按鈕的后臺(tái)事件如下
protected void btnHtml_Click(object sender, EventArgs e) { if (tbUrl.Text.Length > 0) { HtmlWeb htmlWeb = new HtmlWeb(); HtmlDocument htmlDoc = htmlWeb.Load(this.tbUrl.Text); HtmlNode htmlNode = htmlDoc.DocumentNode.SelectSingleNode("//input[@id='__VIEWSTATE']"); string viewStateValue = htmlNode.Attributes["value"].Value; htmlNode = htmlDoc.DocumentNode.SelectSingleNode("//input[@id='__EVENTVALIDATION']"); string eventValidation = htmlNode.Attributes["value"].Value; htmlNode = htmlDoc.DocumentNode.SelectSingleNode("//input[@type='submit']"); string submitName = htmlNode.Attributes["name"].Value; tbViewState.Text = viewStateValue; tbEventValidation.Text = eventValidation; tbSubmitName.Text = submitName; } }
4、以博客園的登錄界面為例,獲取后的界面如下
示例下載
來(lái)自: 昵稱10504424 > 《工作》
0條評(píng)論
發(fā)表
請(qǐng)遵守用戶 評(píng)論公約
開源項(xiàng)目Html Agility Pack實(shí)現(xiàn)快速解析Html
開源項(xiàng)目Html Agility Pack實(shí)現(xiàn)快速解析Html.Why Html Agility Pack?但是,經(jīng)過(guò)我一段時(shí)間的搜索,Html Agility Pack浮出水面:它是Stackoverflow網(wǎng)站上推薦最多的C# HTML解析器。Q: 如何根據(jù)ID選擇HTM...
別在迷戀正則表達(dá)式解析html了,好嗎?
..:選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。< Article ></ Article >針對(duì)上面的XML文件,我們列出了帶有謂語(yǔ)的一些路徑表達(dá)式,以及表達(dá)式的...
.NET Core HtmlAgilityPack HTML解析利器
NET Core HtmlAgilityPack HTML解析利器。發(fā)現(xiàn)HtmlAgilityPack 沒(méi)法進(jìn)行引用,遂自己做了些修改,可以運(yùn)行在 .NET Core 中。NET Core版 ...
C# 實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲
1 private string GetHtml(string Url) //:Url="http://www.cppi.cn";HtmlAgilityPack是.net下的一個(gè)HTML解析類庫(kù),具體使用詳...
HtmlAgilityPack 之 HtmlNode類
將一個(gè)節(jié)點(diǎn)插入到第二個(gè)參數(shù)節(jié)點(diǎn)的后面,與第二個(gè)參數(shù)是兄弟關(guān)系 HtmlNode InsertBefore(HtmlNode newChild, HtmlNode refChild); 講一個(gè)節(jié)點(diǎn)插入到第二個(gè)參數(shù)節(jié)點(diǎn)的后面,與第二個(gè)參數(shù)是兄弟關(guān)系 s...
手把手教你爬取優(yōu)酷電影信息-2
歸納整合一下.NET下各種可用的HTML解析組件(HtmlAgilityPack,Jumony,ScrapySharp,NSoup,Fizzler) | 碼友網(wǎng)
歸納整合一下.NET下各種可用的HTML解析組件(HtmlAgilityPack,Jumony,ScrapySharp,NSoup,Fizzler) | 碼友網(wǎng)做數(shù)據(jù)抓取,網(wǎng)絡(luò)爬蟲方面的開發(fā),自然少不了解析HTML源碼的操作。
imoniker implementation and navigations with html pages loaded from memory
imoniker implementation and navigations with html pages loaded from memoryHi, htmlDoc2->lpVtbl->QueryInterface(htmlDoc2, &IID_IPersistMoniker, &my_persist_moniker);hr = my_p...
介紹C#解析HTML的兩種方法
微信掃碼,在手機(jī)上查看選中內(nèi)容