2012-07-23 37 views
1

我想問一下,是否有可能以C#,一種特定的網站內容大小以編程方式獲取。大小我的意思是:網站的全部大小,包括頭部或身體中引用的所有圖像和腳本等等。例如,如果我們有一個網站http://www.google.com我希望得到它的總大小,包括徽標,腳本引用等等,因爲它將呈現給用戶而不僅僅是主頁面。如何使用其他文件和腳本計算頁面的總大小

這裏是一個圖片我的意思:(點擊查看原圖)

如果我們在IE 9使用IE Developer工具,並開始捕捉對網絡會話流量,比我們打穀歌它顯示加載的總文件(.js,.png等)和加載時間(以毫秒爲單位)。

我嘗試使用webrequest做類似的事情,但IE開發人員工具獲得的結果只有43kb而不是101。

下面是代碼:

WebRequest request = WebRequest.Create(textBox2.Text.ToString());  
request.Credentials = CredentialCache.DefaultCredentials;   
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
Stream dataStream = response.GetResponseStream();  
StreamReader reader = new StreamReader(dataStream);   
string responseFromServer = reader.ReadToEnd();   
byte[] bytes = Encoding.ASCII.GetBytes(responseFromServer); 
MessageBox.Show(ConvertSize(responseFromServer.Length) + " - " + responseFromServer.Length.ToString()); 
reader.Close(); 
dataStream.Close(); 
response.Close(); 

我怎樣才能獲得包括使用的所有圖片,JS和其他文件網站/在特定頁面引用的總大小?非常感謝!

+0

我猜想google可能會根據它認爲你可以處理的內容交付不同的內容。當我查看谷歌主頁的源代碼(FF)時,只需要一個字符數就可以得到超過10萬個字符,比IE告訴你的字符高一些。我猜你的WebRequest方法真的會得到43k的文件。嘗試一下適當的瀏覽器模擬(即設置用戶代理等),看看你是否得到一個不同大小的文件...當然,谷歌會告訴你不同的內容登錄相比,不... – Chris 2012-07-23 14:32:10

回答

0

您的WebRequest只是獲取HTML。這不是解析來獲取任何引用的文件(圖像,CSS,JavaScript包括等)。控制如WebBrowser控件可以讓你自動化瀏覽器

+0

嗨,謝謝你回答。任何想法如何做到這一點? – user1493460 2012-07-23 14:36:56

+0

這是一個解釋,但不是OP問題的答案。 – comecme 2012-07-23 14:52:34

+0

一些提示在這裏:http://stackoverflow.com/questions/60609/automate-safari-web-browser-using-c-sharp-on-windows – podiluska 2012-07-23 14:53:39

相關問題