通过HEAD方法可以只读取HTTP应答头而不用下载文件本身,这样可以节省时间和资源。
常规的方式是使用httplib,这里选择使用urllib2主要是考虑要支持代理。
import urllib2 def get_file_size(url, proxy=None): """通过content-length头获取文件大小 url - 目标文件URL proxy - 代理 """ opener = urllib2.build_opener() if proxy: if url.lower().startswith('https://'): opener.add_handler(urllib2.ProxyHandler({'https' : proxy})) else: opener.add_handler(urllib2.ProxyHandler({'http' : proxy})) request = urllib2.Request(url) request.get_method = lambda: 'HEAD' try: response = opener.open(request) response.read() except Exception, e: print '%s %s' % (url, e) else: return dict(response.headers).get('content-length', 0) if __name__ == '__main__': print get_file_size(url='http://www.site-digger.com/uploads/soft/130313/China_Regions.csv')
呵呵,谢谢
VaTG790i.最好的<a href=http://www.kyfei.com>网站推广软件</a>,
非常好
....................
;ui;普i;uighur;ui;ui;个
在unix网络编程中看到了关于TCP/IP的一些内容,我感觉还是写的不够。正在下载中,一定
下载地址呢