程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> HtmlAgilityPack 抓取頁面的亂碼處理

HtmlAgilityPack 抓取頁面的亂碼處理

編輯:C#入門知識

利用HtmlAgilityPack抓取頁面很方便,但是當頁面是gb2312編碼時候就會出現亂碼,上網查了一下說是默認的獲取頁面方法不夠成熟,具體什麼的我也不知道,姑且就認為是不夠成熟吧。

HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument htmlDocument = htmlWeb.Load(@url);

 

解決方法如下:

新建一個方法來獲取 HtmlDocument,傳進來的是抓取頁面的地址

       private static HtmlDocument GetHtmlDocument(string url)
        {
            HttpWebRequest httpWebRequest = WebRequest.Create(new Uri(@url)) as HttpWebRequest;
            httpWebRequest.Method = "GET";
            WebResponse webResponse = httpWebRequest.GetResponse();
            Stream stream = webResponse.GetResponseStream();
            HtmlDocument htmlDocument = new HtmlDocument();
            htmlDocument.Load(stream);

            return htmlDocument;
        }

 

根據@無機の劍 的評論,用這個屬性就解決了(O(∩_∩)O~):

HtmlWeb htmlWeb = new HtmlWeb(); 
htmlWeb.OverrideEncoding = Encoding.GetEncoding("gb2312");

 

 這樣就可以啦!至於後面的使用方法都一樣,具體可以參考這個博客,講的很詳細哈 http://www.cnblogs.com/linfei721/archive/2013/05/08/3066697.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved