C#中使用HtmlAgilityPack對html進行解析


xpath一般使用在xml的解析上比較多,實際上html是xml的一個子集。在.Net中為了方便我們對html進行操作微軟為我們提供了一個輕量級並且開源的類庫HtmlAgilityPack(點擊下載)。比如我們想截取網頁上某一部分文字獲取其他元素的時候我們一般都是使用正則表達式一步一步的來進行處理的,這個過程相當的繁瑣特別是對正則表達式不熟悉的情況,通過HtmlAgilityPack這個過程就變得相當簡單了。下面我們來看下HtmlAgilityPack的基本使用方法。

工具/原料

  • Google瀏覽器
  • HtmlAgilityPack開源Xpath解析庫
  • VS2010+
  • 一台電腦

方法/步驟

  1. 1

    下載 HtmlAgilityPack 下載地址:http://www.studycsharp.com/thread-44-1-1.html HtmlAgilityPack基本支持.Net2-.Net4.5 也支持Sliverlight和Windows Phone,大家可以根據自己的需求來使用。

  2. 2

    引用對應的DLL本文采用.Net4開發所以選擇Net40文件夾中的庫

    C#中使用HtmlAgilityPack對html進行解析C#中使用HtmlAgilityPack對html進行解析
  3. 3

    打開谷歌瀏覽器吧鼠標放在你想要獲取的元素上,點擊鼠標右鍵->審查元素->Copy Xpath

    C#中使用HtmlAgilityPack對html進行解析
  4. 4

    編寫代碼:

    /第一步聲明HtmlAgilityPack.HtmlDocument實例

               HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();

               //獲取Html頁面代碼

               string html = HTMLHelper.Get_Http("http://www.studycsharp.com/");

               //第二步加載html文檔

               doc.LoadHtml(html);

               //第三步通過Xpath選中html的指定元素  這樣子就獲取到了[url=http://www.studycsharp.com]www.studycsharp.com[/url]的"常用工具類"的板塊鏈接了

               HtmlAgilityPack.HtmlNode htmlnode = doc.DocumentNode.SelectSingleNode("//*[@id=\"category_63\"]/table/tr[2]/td[2]/dl/dt/a");

               //獲取所有板塊的a標簽

               HtmlAgilityPack.HtmlNodeCollection collection = doc.DocumentNode.SelectNodes("//*[starts-with(@id,'category_')]/table/tr/td/dl/dt/a");

     

               StringBuilder sb = new StringBuilder();

               foreach (HtmlAgilityPack.HtmlNode item in collection)

               {

                   sb.Append(string.Format("{0}:{1}\r\n", item.InnerText, item.Attributes["href"].Value));

               }

               this.textBox1.Text = sb.ToString();

  5. 5

    代碼運行效果

    C#中使用HtmlAgilityPack對html進行解析END

注意事項

  • HTMLHelper.Get_Http("http://www.studycsharp.com/"); 這段函數是獲取遠程的Html頁面
  • 上面的例子的網站是http://www.studycsharp.com

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com