2011-06-09 9 views
0

どのURLからでもC#.netのWebブラウザコントロールを使用してHTMLコンテンツをダウンロードしようとしています。 私はJavascriptの問題を処理するwebrowserを選択します。私はフォームに を置かずにWebブラウザコントロールを使用しています。 1つのURLにはうまくいきますが、複数のURLを呼び出すと、 ページをダウンロードできません。C#Webブラウザコントロールを使用する複数のページ

private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
     { 


      System.Windows.Forms.WebBrowser webBrowser1;   
      webBrowser1 = sender as WebBrowser; 

      string strTit = webBrowser1.DocumentTitle; 
      string str = webBrowser1.DocumentText; 

      bDocumentLoaded = true; 

     } 

乾杯、 カルティク

+0

は、アプリケーションがハングすることを課題となっていますwhile(!bDocumentLoaded)?私は同じ問題にぶつかり、他の人がWebBrowserコントロールを同期して動作させるために何をしているのか不思議です。 –

答えて

0

あなたはいくつかのURLからデータをフェッチするためのWebClientオブジェクトを使用することができます。ここでは

はコード

GetWebpage() 
{ 
    System.Windows.Forms.WebBrowser wb = new System.Windows.Forms.WebBrowser(); 


       wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted); 

       wb.Navigate(sURI, false); 


       bDocumentLoaded = false; 

       while (!bDocumentLoaded) 
       { 
        Application.DoEvents(); 
        Thread.Sleep(100); 
       } 
       sHTML = wb.DocumentText; 

       bDocumentLoaded = false; 

    } 

イベントです。

はあなたにも同じダウンロード列のASYCメソッドを使用することができますダウンロードのString

public static void DownloadString (string address) 
    { 
     WebClient client = new WebClient(); 
     string reply = client.DownloadString (address); 

     Console.WriteLine (reply); 
    } 

を使用してみてください。

私はあなたの問題は、これが例

myWebClientについてはHttpWebRequestオブジェクト

のリストであるWebClient ObjectHeaderPropertyを設定してみてくださいいくつかのサイトは、特定のbrowsertype検出され、その後、彼らはHTML

に戻ってきているということだと思います.Headers.Add( "Content-Type"、 "application/x-www-form-urlencoded");

HTTPWEBRequestのuseragentを変更し、ヘッダーに追加します。 HTTPWEBRequest.UserAgent = "。NET Frameworkテストクライアント";あなたはMSDN Link

+0

jusはWebClientオブジェクトを試していますが、うまくいきますが、Javascriptの問題によってブロックされています。 – karthik

関連する問題