Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
    • WordPress 插件及主題下載
  • Search Icon

WONGCW 網誌

記錄生活經驗與點滴

Python使用Requests下载资源获取实时下载进度

Python使用Requests下载资源获取实时下载进度

2018-10-12 Comments 0 Comment

这段时间一直都是比较忙,包括工作上的事情和生活上的事情,已经有一个月没有更新文章了;前段时间收集了很多的Kindle书籍,写爬虫的时候为了方便观察进度,要在控制台打印图书的资源的实时下载进度,今天就来说说如何实现这个小功能。
羊毛党之家 Python使用Requests下载资源获取实时下载进度  https://yangmaodang.org

正文

首先,当我们请求Requests请求一个资源路径的时候,这个请求的响应体会被立即下载返回,这样的话我们就不能获取进度了,但是Requests为我们提供了stream流的方式来获取响应体,这样就有利于我们来获取实时的下载进度,例如下载IDEA:

Python

1
2
request_url = ‘https://download.jetbrains.com/idea/ideaIU-2018.2.1.exe’
res = requests.get(request_url , stream=True)

当上面的语句被执行时,只有响应头被下载并返回给了我们,所以我们可以获取我们需要的数据,比如内容长度content-length:

Python

1
content_length = res.headers[‘content-length’]

然后我们再使用Response.iter_content来控制工作流,来遍历获取资源数据;另外在Python3中在打印内容开头加入\r会使光标回到首行,并不会换行,这样就可以实现进度条的效果,所以最终的代码为:

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import requests
from contextlib import closing
if __name__ == ‘__main__’:
    url = ‘https://download.jetbrains.com/idea/ideaIU-2018.2.1.exe’
    with closing(requests.get(url, stream=True)) as response:
        chunk_size = 1024  # 单次请求最大值
        content_size = int(response.headers[‘content-length’])  # 内容体总大小
        data_count = 0
        with open(‘idea.exe’, “wb”) as file:
            for data in response.iter_content(chunk_size=chunk_size):
                file.write(data)
                data_count = data_count + len(data)
                now_jd = (data_count / content_size) * 100
                print(“\r 文件下载进度:%d%%(%d/%d) – %s” % (now_jd, data_count,content_size, url), end=” “)

效果为:

Default

1
文件下载进度:6%(36305920/540246736) – https://download.jetbrains.com/idea/ideaIU-2018.2.1.exe
当然,你也可以根据自己的喜爱调整输入的内容,比如模仿Centos的下载进度=>>>>实现这样的效果

后记

人生就是在不断的学习与折腾中成长,殊为一边修习,一边休息。

分享此文:

  • 分享到 Twitter(在新視窗中開啟)
  • 按一下以分享至 Facebook(在新視窗中開啟)
  • 分享到 WhatsApp(在新視窗中開啟)
  • 按一下以分享到 Telegram(在新視窗中開啟)
  • 分享到 Pinterest(在新視窗中開啟)
  • 分享到 Reddit(在新視窗中開啟)
  • 按一下即可分享至 Skype(在新視窗中開啟)
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)
  • 點這裡列印(在新視窗中開啟)

相關


教學資源

Post navigation

PREVIOUS
shell脚本自动执行telnet命令并返回结果
NEXT
『脚本』xmr-stak-一键挖矿脚本

發表迴響 取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。

More results...

Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt
Filter by 分類
網站公告
Featured
限時免費
ESET NOD32
WINDOWS 10 &11 INSIDER PREVIEW
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
金融資訊
WhatsApp Stickers教學
WordPress資訊
WeChat資訊
PHP資訊
Plesk資訊
TensorFlow
教學資源
開源程序
網頁工具
SEO工具
醫療健康
旅遊及消閒
其他資訊
Content from
Content to
2018 年 10 月
一 二 三 四 五 六 日
1234567
891011121314
15161718192021
22232425262728
293031  
« 9 月   11 月 »

分類

  • 網站公告
  • 限時免費
  • ESET NOD32
  • WINDOWS 10 &11 INSIDER PREVIEW
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WhatsApp Stickers教學
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • Plesk資訊
  • TensorFlow
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 旅遊及消閒
  • 其他資訊

彙整

近期文章

  • 法院判決龍芯LoongArch指令集系統未侵犯MIPS知識產權 2023-02-08
  • 在基準測試中iPhone 14 Pro的速度比三星Galaxy S23 Ultra快20%以上 2023-02-08
  • 圓通速遞成立圓準達航空服務公司 2023-02-08
  • 《灌籃高手》新動畫電影票房突破100億韓國同樣火爆 2023-02-08
  • 矽谷這場AI大戰中Meta徹底掉隊了 2023-02-08
  • RTX 4070桌面顯卡即將上市漲價在所難免 2023-02-08
  • 中國電信東莞公司宣布停止提供普通寬帶公網IPV4地址服務 2023-02-08
  • 80多年前,全世界最後一隻袋狼究竟是怎麼死的? 2023-02-08
  • 馬斯克將於3月1日公佈特斯拉宏圖第三篇章第二篇章已爛尾 2023-02-08
  • 可完全降解不濕紙吸管面世:冷熱飲皆可用浸泡不變形 2023-02-08

熱門文章與頁面︰

  • DP vs HDMI 誰才是遊戲玩家最佳選擇?
  • ESET NOD32 LICENSE KEY (UPDATED 2023-01-17)
  • Explorer Patcher:讓Windows 11恢復Windows 10的行為特徵
  • 打車叫到特斯拉不會開門很尷尬?官方介紹開關門方法
  • 舊機福音:極限精簡Windows 10系統Tiny10升級C盤僅佔4.3GB
  • Google Chrome瀏覽器意外出現Status_Access_Violation錯誤而崩潰
  • ESET NOD32 LICENSE KEY (UPDATED 2022-01-01)
  • 蘋果公司將在史蒂夫`喬布斯劇院為員工舉辦“AI峰會”活動
  • 預見到應用商店政策的轉變Mozilla正提前開發非WebKit引擎的Firefox
  • AirTag機場實測:各項表現優異只有1個場景下無法生效

投遞稿件

歡迎各界人士投遞稿件到admin@wongcw.com

請提供以下資料:

1.你的名字

2.你的電郵

3.分類目錄

4.文章標題

5.文章摘要

6.文章內容

7.文章來源

 

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

快帆

MALUS

極度掃描

DMCA.com Protection Status

WONGCW 網誌

  • 免責聲明
  • 捐助我們
  • ThemeNcode PDF Viewer
  • ThemeNcode PDF Viewer SC
  • Events

服務器提供

本站使用之服務器由ikoula提供。

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

© 2023   All Rights Reserved.
X