2012-05-31 113 views
0

我已经浪费了2天的时间来了解WebBrowser控件中存在已知的内存泄漏(自2007年左右开始,仍然没有修复它),所以我决定在这里简单地问一下,如何做到这一点需要。直到现在,(使用WebBrowser ...),我一直在访问一个网站(ctrl + a),将其粘贴到一个字符串,这就是全部。我的字符串中有一个网页的文本内容。一直工作直到我发现一段时间后需要1 GB的内存。 是否有可能通过HttpWebRequest,httpwebclient或其他?如何获取网页的txt内容?

谢谢回复,有没有这样的任何线程(或我还没有发现任何,寻找真正地没有把我怎么把很多我真的生气了现在:P)

忘了补充: 我不不需要HTML代码,我知道可以很容易地得到它。在我的情况下,HTML代码是没用的。我确实需要使用互联网浏览器打开网页时看到的文本用户。

+1

这与批准的答案基本相同。 http://stackoverflow.com/questions/2634360/getting-text-off-webpage-not-html-source – JimDel

+0

这些解决方案不工作 – Patryk

回答

1

你为什么不使用免费的开源的HTML刮板像Ncrawler。

它用c#编写。

ncrawler.codeplex.com

你可以得到关于如何使用它here例子。

2

您可以使用此:

string getHtml(string url) { 
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); 
    request.Method = "GET"; 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    StreamReader source = new StreamReader(myWebResponse.GetResponseStream()); 
    string pageSourceStr = string.Empty; 
    pageSourceStr= source.ReadToEnd(); 
    response.Close(); 
    return pageSourceStr; 
} 

你仍然需要做一些字符串替换,以减少它与HTML文本。如果你只是想要某个div的文本,那也不错。

7
using (WebClient client = new WebClient()) 
{ 
    string html = client.DownloadString("http://stackoverflow.com/questions/10839877/how-to-get-a-txt-content-of-a-web-page"); 
} 
2

这将从任何网页下载html内容。

WebClient client = new WebClient(); 
string reply = client.DownloadString ("http://www.google.com");