我試圖下載網站的內容。但是,對於某個網頁,返回的字符串包含混亂的數據,其中包含許多 字符。C#使用C#WebClient或HttpWebRequest將網站下載到字符串中
這是我最初使用的代碼。
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Method = "GET";
req.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))";
string source;
using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
{
source = reader.ReadToEnd();
}
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(source);
我也試過可選的實施方式與Web客戶端,但還是同樣的結果:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
using (WebClient client = new WebClient())
using (var read = client.OpenRead(url))
{
doc.Load(read, true);
}
從搜索我想這可能是與編碼的問題,所以我想這兩個解決方案,但仍保持貼無法讓這個工作。
- http://blogs.msdn.com/b/feroze_daud/archive/2004/03/30/104440.aspx
- http://bytes.com/topic/c-sharp/answers/653250-webclient-encoding
違規的網站,我似乎無法下載是維基百科的英文版本的美國的文章(恩。維基百科。組織/維基/美國)。 雖然我已經嘗試了一些其他wikipedia文章,並沒有看到這個問題。
你不應該手動做這個,這是建立在已經,即看到這個答案:http://stackoverflow.com/questions/2973208/automatically-decompress-gzip-response-via-webclient-downloaddata – BrokenGlass
@BrokenGlass感謝您的提示。我已經想知道爲什麼我以前從未遇到過使用gzip編碼的問題。 – Peter
謝謝,這對我有用! – EnISeeK