python3獲取url檔案大小示例程式碼
阿新 • • 發佈:2020-01-09
在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)
總結
以上所述是小編給大家介紹的python3獲取url檔案大小示例程式碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!