最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 下載文件的幾種方法匯總

 更新時(shí)間:2021年01月06日 10:58:02   作者:''''''''''''''''竹先森゜  
這篇文章主要介紹了python 下載文件的幾種方法匯總,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

前言

  使用腳本進(jìn)行下載的需求很常見(jiàn),可以是常規(guī)文件、web頁(yè)面、Amazon S3和其他資源。Python 提供了很多模塊從 web 下載文件。下面介紹

一、使用 requests

  requests 模塊是模仿網(wǎng)頁(yè)請(qǐng)求的形式從一個(gè)URL下載文件

示例代碼:

import requests

url = 'xxxxxxxx' # 目標(biāo)下載鏈接
r = requests.get(url) # 發(fā)送請(qǐng)求
# 保存
with open ('r.txt', 'rb') as f:
 f.write(r.content)
 f.close

爬蟲(chóng)請(qǐng)求庫(kù)——requests的使用

二、使用 wget

安裝 wget 庫(kù)

pip install wget

示例代碼

import wget

url = 'https://pic.cnblogs.com/avatar/1197773/20170712160655.png' # 目標(biāo)路由,下載的資源是圖片
path = 'D:/x.png' # 保存的路徑
wget.download(url, path) # 下載

三、下載重定向資源

  有些 URL 會(huì)被重定向到另一個(gè) URL,后者是真正的下載鏈接。很多軟件的下載其實(shí)都是這樣的形式。URL看起來(lái)如下

https://readthedocs.org/projects/python-guide/downloads/pdf/latest

  重定向的 URL 也可以用 requests 庫(kù)進(jìn)行下載,只需加一個(gè)參數(shù)就可以

import requests

url = 'https://readthedocs.org/projects/python-guide/downloads/pdf/latest'

# allow_redirect參數(shù)True表示允許重定向
r = requests.get(url, allow_redirect=True)
with open('r.txt', 'wb') as f:
 f.write(r)
 f.close()

四、大文件分塊下載

  有些文件非常的大,如果我們直接下載,可能會(huì)因?yàn)槭录蚧蛘呔W(wǎng)絡(luò)原因造成下載失敗,這時(shí)候我可以使用分塊下載的形式進(jìn)行下載。

  requests 支持分塊下載,只需要將 stream 設(shè)為T(mén)rue 即可

import requests

url = 'https://readthedocs.org/projects/python-guide/downloads/pdf/latest'

# stream參數(shù)True表示分塊下載
r = requests.get(url, stream=True)
with open('r.txt', 'wb') as f:
 for ch in r:
 f.write(r)
 f.close()

五、并行下載

  多線(xiàn)程、多進(jìn)程并發(fā)下載,大大提高下載速度

import requests
from multiprocessing.poll import Pool

# 定義下載函數(shù)
def url_response(url):
 path, url = url
 r = requests.get(url, stream=True)
 with open(path, 'wb') as f:
 for ch in r:
  f.write(ch)
 f.close()

urls = ['aaa', 'bbb', 'ccc'] # 假設(shè)有好多個(gè)下載鏈接

# 排隊(duì)下載的方式
for x in urls:
 url_response(x)

# 并行下載的方式
ThreadPool(3).imap_unordered(url_response, urls)

六、下載中加入進(jìn)度條

  使用進(jìn)度條更直觀的查看下載進(jìn)度,這里使用 clint 模塊實(shí)現(xiàn)進(jìn)度條功能

pip install clint

下載

import requests
from clint.textui import progess

url = 'xxxxxxxxxxx'
r = requests.get(url, stream=True)
with open('x.txt', 'wb') as f
 total_length = int(r.headers.get('content-length'))
 for ch in progress.bar(r.iter_content(chunk_size=2391975, expected)size=(total_length/1024)+1)):
 if ch:
  f.write(ch)
 f.close()

其他使用進(jìn)度條的案例:Python 實(shí)現(xiàn)進(jìn)度條的六種方式

七、使用 urllib 模塊下載

  urllib庫(kù)是Python的標(biāo)準(zhǔn)庫(kù),因此不需要安裝它。

下載代碼

urllib.request.urlretrieve(URL, PATH)

八、通過(guò)代理下載

  因?yàn)橐恍┍娝苤脑蛭覀兿螺d國(guó)外的資源會(huì)非常的慢,這時(shí)候可以使用代理的方式進(jìn)行下載

requests 模塊使用代理

import requests

# 定義代理,假設(shè)本機(jī)上有個(gè)梯子的服務(wù),代理端口是2258
proxy = {'http': 'http://127.0.0.1:2258'} 

url = 'xxxxxx'
r = requests.get(url, proxies=proxy )
.......

urllib 模塊使用代理

import urllib.request

url = 'xxxxxxxxxx'
proxy = urllib.request.ProxyHandler({'http': '127.0.0.1'})
open_proxy = urllib.request.build_opener(proxy ) # 打開(kāi)代理
urllib.request.urlretrieve(url)

九、使用 urllib3

  urllib3 是 urllib 模塊的改進(jìn)版本。使用pip下載并安裝

pip install urllib3

以上就是python 下載文件的幾種方法匯總的詳細(xì)內(nèi)容,更多關(guān)于python 下載文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Django中類(lèi)視圖使用裝飾器的方式

    詳解Django中類(lèi)視圖使用裝飾器的方式

    這篇文章主要介紹了詳解Django中類(lèi)視圖使用裝飾器的方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • python實(shí)現(xiàn)音樂(lè)播放和下載小程序功能

    python實(shí)現(xiàn)音樂(lè)播放和下載小程序功能

    這篇文章主要介紹了python實(shí)現(xiàn)音樂(lè)播放和下載小程序功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • python項(xiàng)目中requirements.txt的用法實(shí)例教程

    python項(xiàng)目中requirements.txt的用法實(shí)例教程

    Python項(xiàng)目中必須包含一個(gè)requirements.txt文件,用于記錄所有依賴(lài)包及其精確的版本號(hào),以便新環(huán)境部署,下面這篇文章主要給大家介紹了關(guān)于python項(xiàng)目中requirements.txt用法的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Python如何優(yōu)雅的實(shí)現(xiàn)自增枚舉類(lèi)

    Python如何優(yōu)雅的實(shí)現(xiàn)自增枚舉類(lèi)

    枚舉類(lèi)型在編程中扮演著重要的角色,它們?yōu)樽兞抠x予了更加清晰的含義,然而,在Python中,實(shí)現(xiàn)自增的枚舉類(lèi)并非直接而簡(jiǎn)單的任務(wù),本文將深入討論如何通過(guò)不同的方式優(yōu)雅地實(shí)現(xiàn)自增的枚舉類(lèi),需要的朋友可以參考下
    2023-12-12
  • Python 圖片文字識(shí)別的實(shí)現(xiàn)之PaddleOCR

    Python 圖片文字識(shí)別的實(shí)現(xiàn)之PaddleOCR

    OCR方向的工程師,之前一定聽(tīng)說(shuō)過(guò)PaddleOCR這個(gè)項(xiàng)目,其主要推薦的PP-OCR算法更是被國(guó)內(nèi)外企業(yè)開(kāi)發(fā)者廣泛應(yīng)用,短短半年時(shí)間,累計(jì)Star數(shù)量已超過(guò)15k,頻頻登上Github Trending和Paperswithcode 日榜月榜第一
    2021-11-11
  • 詳解Python self 參數(shù)

    詳解Python self 參數(shù)

    這篇文章主要介紹了Python self 參數(shù)詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python 列表,集合和字典的增刪改查

    python 列表,集合和字典的增刪改查

    這篇文章主要介紹了python 列表,集合和字典的增刪改查,本文分別對(duì)他們一一說(shuō)明,小編覺(jué)得這篇文章寫(xiě)的還不錯(cuò),需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-10-10
  • Python編寫(xiě)登陸接口的方法

    Python編寫(xiě)登陸接口的方法

    這篇文章主要為大家詳細(xì)介紹了Python編寫(xiě)登陸接口的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • python如何保證輸入鍵入數(shù)字的方法

    python如何保證輸入鍵入數(shù)字的方法

    今天小編就為大家分享一篇python如何保證輸入鍵入數(shù)字的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取

    Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取

    ROI區(qū)域又叫感興趣區(qū)域。在機(jī)器視覺(jué)、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱(chēng)為感興趣區(qū)域,ROI。本文主要為大家介紹如何通過(guò)Python+OpenCV提取ROI區(qū)域,需要的朋友可以了解一下
    2021-12-12

最新評(píng)論

喀喇沁旗| 双峰县| 突泉县| 达拉特旗| 台湾省| 西藏| 罗平县| 苏尼特左旗| 锡林郭勒盟| 元谋县| 汪清县| 铁力市| 广平县| 平邑县| 安阳市| 晋江市| 定日县| 贵溪市| 彭水| 台南市| 莱州市| 吴旗县| 黑河市| 栾川县| 精河县| 安溪县| 鹤山市| 靖宇县| 鄂托克前旗| 潼关县| 子长县| 江安县| 裕民县| 志丹县| 会理县| 延庆县| 乌恰县| 都匀市| 肥西县| 阜平县| 荔浦县|