在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文件大小示例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
