Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
  • 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的下载进度=>>>>实现这样的效果

后记

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

分享此文:

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

相關


教學資源

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
限時免費
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
WordPress資訊
WeChat資訊
PHP資訊
教學資源
開源程序
網頁工具
SEO工具
醫療健康
其他資訊
Content from
Content to
2018 年 10 月
一 二 三 四 五 六 日
1234567
891011121314
15161718192021
22232425262728
293031  
« 9 月   11 月 »

分類

  • 網站公告
  • 限時免費
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 其他資訊

彙整

近期文章

  • RTX 5060顯示卡、筆電登場DLSS 4遊戲應用已達125款輕鬆破百幀 2025-05-20
  • 全球首款鴻蒙5直板機華為nova 14 Ultra發表:4199元起 2025-05-20
  • Windows 10五月更新觸發BitLocker鎖定微軟稱是英特爾的問題 2025-05-20
  • 《Cyber​​punk2077》Switch2最新4K實機展示曝光 2025-05-20
  • 《最後的生還者》主創尼爾談第6集:謊言重壓下的人性之光 2025-05-20
  • 高通:將生產可連接英偉達晶片的資料中心處理器 2025-05-20
  • 英特爾Panther Lake CPU在Computex上近距離展示2026年初推出 2025-05-20
  • 華為鴻蒙PC新品提早亮相:可折疊超大螢幕+自研麒麟X90芯 2025-05-20
  • Linus Torvalds 表示Linux 6.15 很可能會在下週發布 2025-05-20
  • 洩漏的圖片揭示了蘋果Powerbeats Pro 2 的半透明設計 2025-05-20

熱門文章與頁面︰

  • 您可以在Windows 11 24H2 中找回WordPad
  • Red Hat Enterprise Linux 10 正式發布
  • Adobe Zii v4.5.0 CC 2019/5.1.4 2020 Universal Patcher Mac- Adob​​e for Mac激活工具
  • Windows及OFFICE激活密鑰+電話激活教程–自用
  • 網站未在Google上顯示(未編入索引)的可能原因及解決方案
  • GaN-on-Si和GaN-on-SiC的路線之爭
  • 揭密蘋果製造工廠:每年的支出可以造兩艘航母
  • 三星Galaxy S25 系列官方桌布下載
  • 研究人員發現神秘的史前巨蛋屬於“末日魔鴨”
  • 北京地鐵扶梯上多了兩隻黃色腳印不必“左行右立”

投遞稿件

歡迎各界人士投遞稿件到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

© 2025   All Rights Reserved.