2012-07-23 33 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

相关问题