python3获取url文件大小示例代码
时间:2021-06-11 08:06:19|栏目:Python代码|点击: 次
在python3中,urllib2被替换为urllib.requeset,因此头文件中添加
import urllib.request as urllib2
def getRemoteFileSize(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}))
try:
request = urllib2.Request(url)
request.get_method = lambda: 'HEAD'
response = opener.open(request)
response.read()
except Exception:
return 0
else:
print(response.headers)
fileSize = dict(response.headers).get('content-length', 0)
return int(fileSize)
使用上段代码发现输出为0,考虑应该是没查询到content-length字段,打印response.headers字段后,发现content-length字段应改为Content-Length,改后正常

def getRemoteFileSize(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}))
try:
request = urllib2.Request(url)
request.get_method = lambda: 'HEAD'
response = opener.open(request)
response.read()
except Exception:
return 0
else:
print(response.headers)
fileSize = dict(response.headers).get('Content-Length', 0)
return int(fileSize)
总结
上一篇:Python爬虫包BeautifulSoup异常处理(二)
栏 目:Python代码
下一篇:python 实现百度网盘非会员上传超过500个文件的方法
本文标题:python3获取url文件大小示例代码
本文地址:http://www.codeinn.net/misctech/139508.html






