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

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

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

前言

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

一、使用 requests

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

示例代碼:

import requests

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

爬蟲請求庫——requests的使用

二、使用 wget

安裝 wget 庫

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 會被重定向到另一個 URL,后者是真正的下載鏈接。很多軟件的下載其實都是這樣的形式。URL看起來如下

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

  重定向的 URL 也可以用 requests 庫進行下載,只需加一個參數(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()

四、大文件分塊下載

  有些文件非常的大,如果我們直接下載,可能會因為事件原因或者網(wǎng)絡(luò)原因造成下載失敗,這時候我可以使用分塊下載的形式進行下載。

  requests 支持分塊下載,只需要將 stream 設(shè)為True 即可

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()

五、并行下載

  多線程、多進程并發(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è)有好多個下載鏈接

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

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

六、下載中加入進度條

  使用進度條更直觀的查看下載進度,這里使用 clint 模塊實現(xià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()

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

七、使用 urllib 模塊下載

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

下載代碼

urllib.request.urlretrieve(URL, PATH)

八、通過代理下載

  因為一些眾所周知的原因我們下載國外的資源會非常的慢,這時候可以使用代理的方式進行下載

requests 模塊使用代理

import requests

# 定義代理,假設(shè)本機上有個梯子的服務(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 ) # 打開代理
urllib.request.urlretrieve(url)

九、使用 urllib3

  urllib3 是 urllib 模塊的改進版本。使用pip下載并安裝

pip install urllib3

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

相關(guān)文章

  • 詳解Django中類視圖使用裝飾器的方式

    詳解Django中類視圖使用裝飾器的方式

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

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

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

    python項目中requirements.txt的用法實例教程

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

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

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

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

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

    詳解Python self 參數(shù)

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

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

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

    Python編寫登陸接口的方法

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

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

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

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

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

最新評論

水富县| 开阳县| 波密县| 千阳县| 应城市| 屯门区| 浙江省| 连平县| 武穴市| 新安县| 神池县| 益阳市| 张家界市| 隆子县| 施甸县| 博乐市| 吴旗县| 淮滨县| 从江县| 亳州市| 娱乐| 广丰县| 拉孜县| 德阳市| 灵石县| 恩施市| 米脂县| 化德县| 内乡县| 贵州省| 来宾市| 八宿县| 太原市| 玉龙| 长治县| 安西县| 法库县| 嘉峪关市| 上犹县| 盐源县| 定远县|