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文件大小示例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
python的描述符(descriptor)、裝飾器(property)造成的一個(gè)無限遞歸問題分享
這篇文章主要介紹了python的描述符(descriptor)、裝飾器(property)造成的一個(gè)無限遞歸問題分享,一個(gè)不太會(huì)遇到的問題,需要的朋友可以參考下2014-07-07DjangoRestFramework 使用 simpleJWT 登陸認(rèn)證完整記錄
Djangorestframework-simplejwt是Django REST Framework框架的一個(gè)jwt插件,使用 python http 工具進(jìn)行接口測(cè)試的方法文中給大家提到,重點(diǎn)給大家分享djangorestframework-simplejwt 使用記錄及登陸認(rèn)證的完成過程,感興趣的朋友跟隨小編一起看看吧2021-06-06python GUI庫圖形界面開發(fā)之PyQt5信號(hào)與槽的高級(jí)使用技巧(自定義信號(hào)與槽)詳解與實(shí)例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5信號(hào)與槽的高級(jí)知識(shí)(自定義信號(hào)與槽)詳解與實(shí)例,需要的朋友可以參考下2020-03-03Python Tkinter Entry和Text的添加與使用詳解
這篇文章主要介紹了Python Tkinter Entry和Text的添加與使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Python實(shí)現(xiàn)合并多張圖片成視頻的示例詳解
隨著短視頻的興起,越來越多的人開始用各種形式進(jìn)行視頻制作,本篇博客從程序員的角度為大家解析一下如何通過?Python?合并多個(gè)圖片為一個(gè)視頻,需要的可以參考一下2023-02-02一個(gè)基于flask的web應(yīng)用誕生 記錄用戶賬戶登錄狀態(tài)(6)
一個(gè)基于flask的web應(yīng)用誕生第六篇,這篇文章主要介紹了記錄用戶賬戶登錄狀態(tài)功能開發(fā),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Django 對(duì)IP訪問頻率進(jìn)行限制的例子
今天小編就為大家分享一篇Django 對(duì)IP訪問頻率進(jìn)行限制的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python詳解文字轉(zhuǎn)語音的實(shí)現(xiàn)
在自然語言處理上,文字、音頻互轉(zhuǎn)是一個(gè)很關(guān)鍵的技術(shù)點(diǎn)。對(duì)于語音轉(zhuǎn)文字,個(gè)人實(shí)現(xiàn)較為困難,我們可以使用語音轉(zhuǎn)文字的軟件或借助各API(如科大訊飛等)進(jìn)行移植開發(fā)。不過文字轉(zhuǎn)語音就相對(duì)而言容易實(shí)現(xiàn)很多了2022-02-02