0

WebBrowserコントロールに既知のメモリリークがあることを確認するために2日を無駄にしました(2007年頃から、まだ修正されていません)。そこで、必要なことを行う方法をここで尋ねることにしました。

今まで(WebBrowserを使用して...)、私はサイト(ctrl + a)にアクセスし、それを文字列に貼り付けました。それだけでした。文字列にWebページのテキストコンテンツが含まれていました。しばらくすると1GBのメモリが必要であることがわかるまで、完全に機能しました。HttpWebRequest、httpwebclientなどを介してそれを行うことは可能ですか?

返信をありがとう、そのようなスレッドはありませんでした(または私は何も見つかりませんでした、検索は本当に私をあまり連れて行きませんでした私は今本当に腹を立てています:P)

追加するのを忘れた:HTMLコードは必要ありません。簡単に取得できることはわかっています。私の場合、htmlコードは役に立ちません。インターネットブラウザでページを開いているときに、テキストユーザーに表示する必要があります。

4

4 に答える 4

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");
}
于 2012-05-31T19:21:03.570 に答える
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からtextに減らすには、まだいくつかの部分文字列を置き換える必要があります。特定のdivからのテキストが必要な場合は、それほど悪くはありません。

于 2012-05-31T19:19:27.677 に答える
2

これにより、任意のWebページからHTMLコンテンツがダウンロードされます。

WebClient client = new WebClient ();
string reply = client.DownloadString ("http://www.google.com");
于 2012-05-31T19:22:45.417 に答える
1

Ncrawlerのような無料のオープンソースHTMLスクレーパーを使ってみませんか。

それはc#で書かれています。

ncrawler.codeplex.com

ここでそれを使用する方法の例を得ることができます。

于 2012-05-31T19:25:10.493 に答える