我想用WebRequest類,就像我們所得到的,當我們使用webbrowser1.Document.Body.InnerText
獲得純文本的反應得到明文。我試了下面的代碼如何從WebRequest類在C#
public string request_Resource()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myurl);
Stream stream = request.GetResponse().GetResponseStream();
StreamReader sr = new StreamReader(stream);
WebBrowser wb = new WebBrowser();
wb.DocumentText = sr.ReadToEnd();
return wb.Document.Body.InnerText;
}
當我執行這是得到一個NullReferenceException
。
有沒有更好的方式來獲得一個純文本。
注:我不能使用WebBrowser控件直接載入網頁,因爲,我不想對付那些當過加載一個網頁,火了多次活動。
更新:我已經改變了我的代碼時建議使用WebClient類來代替的WebRequest 我的代碼看起來是這樣的,現在
public string request_Resource()
{
WebClient wc = new WebClient();
wc.Proxy = null;
//The user agent header is added to avoid any possible errors
wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729; .NET4.0C)");
return wc.DownloadString(myurl);
}
我使用HTML工具包考慮,任何人都可以提出任何更好的選擇。
@SLaks的建議,我檢查了HTML實用程序包,任何人都可以提出一個簡單的解決方案,而不使用第三方庫。 謝謝 – Vamsi 2010-11-25 18:47:59
看看這個SO回答使用Html Agility Pack - http://stackoverflow.com/questions/2785092/c-htmlagilitypack-extract-inner-text/2785108#2785108 – 2010-11-25 18:57:36
謝謝大家的HTML實用工具包建議,我肯定會考慮,但這樣做,任何人可以提出任何其他的方式做到這一點之前。 來到Webclient類,我已經改變了我的代碼 – Vamsi 2010-11-25 19:03:30