1.HtmlAgilityPack是壹個開源的解析HTML元素的類庫,最大的特點是可以通過XPath來解析HMTL,如果您以前用C#操作過XML,那麽使用起HtmlAgilityPack也會得心應手。
下面以壹個簡單的例子來介紹下HtmlAgilityPack的使用,對於Asp.Net程序開發的網站要做模擬登錄的時候,除了要知道用戶名文本框和密碼文本框的name屬性值外,還需要知道頁面的__VIEWSTATE、__EVENTVALIDATION這兩個隱藏控件的值,以及提交按鈕的name屬性,下面看看怎樣使用HtmlAgilityPack來獲得這個額外的值。
2.例程:
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;
}
}