文章出處
文章列表
HtmlAgilityPack是一個開源的解析HTML元素的類庫,最大的特點是可以通過XPath來解析HMTL,如果您以前用C#操作過XML,那么使用起HtmlAgilityPack也會得心應手。目前最新版本為1.4.6,下載地址如下:
http://htmlagilitypack.codeplex.com/
下面以一個簡單的例子來介紹下HtmlAgilityPack的使用,對于Asp.Net程序開發的網站要做模擬登錄的時候,除了要知道用戶名文本框和密碼文本框的name屬性值外,還需要知道頁面的__VIEWSTATE、__EVENTVALIDATION這兩個隱藏控件的值,以及提交按鈕的name屬性,下面看看怎樣使用HtmlAgilityPack來獲得這個額外的值。
1、在項目中添加對HtmlAgilityPack.dll的引用
2、在Aspx頁面中放幾個文本框控件和一個按鈕控件
3、按鈕的后臺事件如下
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、以博客園的登錄界面為例,獲取后的界面如下
文章列表
全站熱搜