【问题标题】:Calculate web page size in python在python中计算网页大小
【发布时间】:2009-10-23 04:31:10
【问题描述】:

我将如何使用 Python 计算网页 (url) 的大小。我尝试了 urllib2 并获取了 content-length 标头,但它不存在。

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

【问题讨论】:

标签: python


【解决方案1】:

当您使用urlopen 时,您将请求全部内容(一个 HTTP GET 请求),因此寻找可选的 content-length 标头并不是那么有用,一旦您采用这种方式(没关系,节省您需要一些时间和内存,但您已经在服务器和网络上施加了可避免的负载)。尽管如此,正如现有答案所示,urlopen 的结果的read()len 是即使缺少内容长度也可以工作的方式。

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

【讨论】:

    【解决方案2】:

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

    print len(r.read())
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-04-25
        • 2011-08-21
        • 2014-07-28
        • 2023-03-22
        • 2011-12-16
        • 1970-01-01
        • 2012-05-28
        • 2020-10-28
        相关资源
        最近更新 更多