2010-07-07 52 views
0

我有一個奇怪的問題:從url獲取html源碼,css內聯問題!

我使用正從URL中的HTML源代碼如下:

string html; 
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Url); 
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
{ 
    using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) 
    { 
     html = reader.ReadToEnd(); 
     reader.Close(); 
    } 
    response.Close(); 
} 

,我請求頁面有CSS內聯這樣的:

<span class="VL" style="display:inline-block;height:20px;width:0px;"></span> 

但html var值只有:

<span class="VL" style="display:inline-block;"></span> 

任何人都知道爲什麼?我已經測試了許多enconders並且也使用了WebRequest和WebClient,但也不能工作。

回答

2

您可能需要發送用戶代理,以使該網站不認爲您是機器人。當有機器人請求時,一些站點不會打擾CSS。另外,遠程HTML的讀數可以用簡化一個WebClient

using (var client = new WebClient()) 
{ 
    client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4"; 
    string html = client.DownloadString(url); 
} 
+0

賓果! 這項工作Darin!非常感謝你! – Fabio 2010-07-07 16:31:14

0

你看穿瀏覽器開發工具的源,通過點擊檢查元素?是否有可能從瀏覽器查看源代碼,該瀏覽器通過JavaScript在客戶端添加高度和寬度屬性並顯示修改後的樣式。

+0

Tks Chris,但頁面上沒有javascript。達林的解決方案有效。 – Fabio 2010-07-07 16:36:24