2015-12-14 130 views
-1

這是有點棘手,但這是如何去。從網站檢索html

  1. 頁負載
  2. 執行一些javascript產生更多的HTML代碼。而源代碼是我需要的。 現在我看到我不能使用html解析器,因爲實際上沒有運行代碼的方法。 使用http我可以管理獲取第一個源代碼,但JavaScript不執行,所以我從來沒有得到我需要的源代碼。

檢索之後生成的代碼的最佳方法是什麼?

編輯:我試圖避免使用隱藏的Web瀏覽器。它實際上是可能的,因爲它在這裏作爲JavaScript解釋器工作,但它是非常緩慢和非常醜陋的方式。

EDIT2:添加的代碼

static private string _InetReadEx(string sUrl) 
     { 
      string aRet; 
      HttpWebRequest webReq = (HttpWebRequest)HttpWebRequest.Create(sUrl); 
      try 
      { 
       webReq.CookieContainer = new CookieContainer(); 
       webReq.Method = "GET"; 
       using (WebResponse response = webReq.GetResponse()) 
       { 
        using (Stream stream = response.GetResponseStream()) 
        { 
         StreamReader reader = new StreamReader(stream); 
         aRet = reader.ReadToEnd(); 
         return aRet; 
        } 
       } 
      } 
      catch (Exception ex) 
      { 
       return string.Empty; 
      } 
     } 
+1

如果你正在生成HTML,那麼你有HTML。 –

+0

你是否試圖從給定和/或特定的網頁下載html源代碼?如果是這樣,請顯示您的代碼也可以很容易地使用WebClient完成。也許你可以告訴我們你到目前爲止,所以我們不會被所有人困惑,或者玩猜謎遊戲 – MethodMan

+0

@MethodMan我想獲取特定網頁的html。代碼添加 –

回答

0

除非你使用WebBrowser控件你提到你希望避免的。沒有其他召開方式。

可以模擬運行並執行JavaScript的行爲,比格式化爲web瀏覽器做,但是這不會是動態的格式,因此更需要的。

+0

我會在桌面上使用這個和電話應用程序。這將是非常緩慢的手機應用程序。 –

+0

嗯。我用web瀏覽器,但我有一個問題。服務器告訴我我的瀏覽器已過時。這是一個WP8.1應用程序。所以這也不會工作 –

+0

那麼第二種方法呢?你能幫我一把嗎?我不知道該怎麼做 –