python3獲取url文件大小示例代碼
在python3中,urllib2被替換為urllib.requeset,因此頭文件中添加
import urllib.request as urllib2 def getRemoteFileSize(url, proxy=None): """ 通過content-length頭獲取遠(yuǎn)程文件大小 url - 目標(biāo)文件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)
使用上段代碼發(fā)現(xiàn)輸出為0,考慮應(yīng)該是沒查詢到content-length字段,打印response.headers字段后,發(fā)現(xiàn)content-length字段應(yīng)改為Content-Length,改后正常
def getRemoteFileSize(url, proxy=None): """ 通過content-length頭獲取遠(yuǎn)程文件大小 url - 目標(biāo)文件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)
總結(jié)
以上所述是小編給大家介紹的python3獲取url文件大小示例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
python的描述符(descriptor)、裝飾器(property)造成的一個無限遞歸問題分享
這篇文章主要介紹了python的描述符(descriptor)、裝飾器(property)造成的一個無限遞歸問題分享,一個不太會遇到的問題,需要的朋友可以參考下2014-07-07DjangoRestFramework 使用 simpleJWT 登陸認(rèn)證完整記錄
Djangorestframework-simplejwt是Django REST Framework框架的一個jwt插件,使用 python http 工具進行接口測試的方法文中給大家提到,重點給大家分享djangorestframework-simplejwt 使用記錄及登陸認(rèn)證的完成過程,感興趣的朋友跟隨小編一起看看吧2021-06-06python GUI庫圖形界面開發(fā)之PyQt5信號與槽的高級使用技巧(自定義信號與槽)詳解與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5信號與槽的高級知識(自定義信號與槽)詳解與實例,需要的朋友可以參考下2020-03-03Python Tkinter Entry和Text的添加與使用詳解
這篇文章主要介紹了Python Tkinter Entry和Text的添加與使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03一個基于flask的web應(yīng)用誕生 記錄用戶賬戶登錄狀態(tài)(6)
一個基于flask的web應(yīng)用誕生第六篇,這篇文章主要介紹了記錄用戶賬戶登錄狀態(tài)功能開發(fā),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04