2011-06-09 77 views
0

我試圖通過C#.net中的webbrowser控件從任何URL下載HTML內容。 我選擇webrowser來處理Javascript問題。我正在使用網頁瀏覽器控件,但沒有將 放在表單上。它適用於一個網址,但是當我將它稱爲多個網址時,我無法通過 下載該網頁。使用C#Web瀏覽器控件的多個頁面

下面是代碼

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; 

    } 

事件:

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; 

     } 

乾杯, KARTHIK

+0

是問題的應用程序掛起while(!bDocumentLoaded)?我遇到了同樣的問題,我很好奇別人正在做什麼使WebBrowser控件同步工作 – 2012-11-29 18:54:10

回答

0

您可以使用WebClient的對象從某些網址提取數據。

嘗試使用下載字符串

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

     Console.WriteLine (reply); 
    } 

您也可以使用相同字符串下載ASYC的方法。

我覺得你的問題是,一些站點檢測特定browsertype,然後將它們返回HTML

嘗試將HeaderPropertyWebClient Object這是HttpWebRequest對象

對於實例

myWebClient列表.Headers.Add( 「內容類型」, 「應用程序/ x WWW的形式進行了urlencoded」);

修改HTTPWEBRequest的useragent,然後添加到標頭。 HTTPWEBRequest.UserAgent =「.NET Framework測試客戶端」;

您可以檢查有關此信息MSDN Link

+0

我有理由嘗試webclient對象,它工作的很好,但有一些頁面被Javascript問題阻止。 – karthik 2011-06-09 15:53:10