在python中计算网页大小

时间:2009-10-23 04:31:11

标签: python

如何使用Python计算网页(url)的大小。我尝试了urllib2并抓住了内容长度标题,但它不存在。

import urllib2
url = 'http://www.google.com/'
r = urllib2.urlopen(url)
#Not sure what to do from here

3 个答案:

答案 0 :(得分:5)

当你使用urlopen时,你将要求整个内容(一个HTTP GET请求),所以一旦你走了那样,寻找可选的内容长度标题并不是那么有用(没关系) ,节省你一些时间和内存,但你已经在服务器和网络上施加了可避免的负载)。尽管如此,正如现有答案所示,即使缺少内容长度,len的{​​{1}}结果的read()也是可行的方式。

唉,urllib2不支持HEAD http方法。要尝试HEAD,您必须使用较低级别的模块httplib(与服务器建立连接,调用其urlopen方法,调用其request('HEAD', url)以获取HttpResponse对象,调用后者的getresponse方法获取内容长度标题...你明白为什么我说模块是低级别的;-)。如果你正在处理非常大的页面和敏感的服务器(那些设置内容长度标题的服务器),这可能是一个重要的优化。

答案 1 :(得分:3)

Content-Length是可选的;使用它,如果它存在,减少带宽使用,但如果服务器没有发送它(或由于某种原因你不信任它),你将不得不检索整个资源并计算其长度。 / p>

print len(r.read())

答案 2 :(得分:0)

我是这样做的。请参阅下面的代码。

import urllib2
url = 'http://www.ueseo.org'
r = urllib2.urlopen(url)
print len(r.read())