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

tengxunyun cera

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

正文

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

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

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

效果为:

当然,你也可以根据自己的喜爱调整输入的内容,比如模仿Centos的下载进度=>>>>实现这样的效果

后记

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

cera aliyun tengxunyun cloudiplc

相关推荐

使用|Maverick|搭建|Wiki站点

使用 Maverick 搭建 Wiki 站点 Blog (https://www.zggsong.cn/archives/wiki.html) | GitHub (https://github.com/AlanDecode/Maverick-Theme-Galileo) | Demo (https://wiki.zggsong.cn/) 本文主要讲述了作者如何让使用基于 Python 构建静态博客生成器 Maverick (https://github.com/AlanDecode/Maverick),搭建 Wiki 站点。其中 Wiki 站点主题使用了 Kepler (https://github.com/AlanDecode/Maverick-Theme-Kepler),Maverick 用 GitHub Actions 自动构建。写完推送通过 Actions 自动构建生成静态页面,然后发布到 Github Pages。作者还进一步阐述了如何利用腾讯云开发 API 接入腾讯云,从而实现访问加速 效果就是寻常的左右分栏 #Wiki#,类似 Gitbook、语雀那样,用来记录一些零碎知识点并形成知识体系。 “在日常学习过程中,知识细小琐碎,有时甚至只是一句话,却时常有很重要的学习意义,放在博客一方面日后查找起来不方便,另一方面显得有些小题大做”,其实如何利用和规划,重要性大于形式本身

LunaNode一年免费使用主机跑分测评

在LET上看到了一年体验套餐的帖子,于是申请了一个去使用了一下,下面是跑分。 ————————————————- nench.sh v2019.07.20-https://git.io/nench.sh 基准时间戳记:UTC 2020-04-21 03:01:04 ————————————————- 处理器:Intel®Xeon®CPU E5-2670 0 [url = home.php?mod = space&uid = 175] @ [/ url] 2.60GHz CPU核心数:1 频率:2599.998 MHz 内存:985M 掉期:511M 内核:Linux 4.15.0-66-Generic x86_64 磁盘: vda 16G硬盘 vdb 512M硬盘 CPU:SHA256杂凑500 MB     3.962秒 CPU:bzip2-压缩500 MB     6.477秒 CPU:AES加密500 MB     2.215秒 ioping:搜寻率     最小值/平均值/最大值/ mdev …

AWS CloudFront|AWS CDN|设置|使用教程;为WordPress加速

因网络知识浅薄,若有错漏,麻烦不吝指正。 一、AWS CloudFront简单介绍 Amazon CloudFront,即AWS #CDN#,节点分布全球,亚洲国内、#日本#、#香港#、#新加坡#等,除国内节点需要#备案#,其他均不需要。 首年免费,每月送50GB流量。流量只计算出流量,入流量不计。 AWS #CloudFront#官网:https://aws.amazon.com/cn/cloudfront/ 二、AWS CloudFront的注册 AWS CloudFront有中文页面,注册需要手机、#信用卡#验证。 三、AWS CloudFront的申请、设置 以tg.tn为例(在主机处,同时绑定tg.tn和www.tg.tn,访问主域名为tg.tn) 进入AWS CloudFront后台,点击 Create Distribution 选择 WEB 加速 Origin Domain Name:只能是域名,www.tg.tn Origin Protocol Policy:如果安全性重要,就用https Query String Forwarding and Caching:选择全部缓存 Compress Objects Automatically:选YES 申请/导入域名SSL证书:https://console.aws.amazon.com/acm/home?region=us-east-1#/ AWS SSL证书申请,安装说明一步一步,非常简单。 导入证书的话,选择Apache格式的。 这就是创建好的。选择 ID 进入CDN管理,选择EDIT Alternate Domain Names(CNAMEs):填写要加速的域名 SSL Certificate:可以用AWS的(免费),也可以用自己的SSL证书(免费) 三、DNS解析设置 在自己的域名解析处设置(建议国内DNSPOD、DNS.COM、华为云DNS等) www.tg.tn 全网#解析# A记录 为你的主机IP(解析源) …

使用Fikker自建CDN|并开放注册|使用;设置支付宝收款|可商业运营

Fikker,比较成熟的#CDN#系统,#授权#相比较便宜,功能也够用,其中主控是免费的,只支持#Windows#系统;被控收费,支持Windows和#Linux#系统。个人或小规模使用,只需要被控就行。 官方教程:https://www.fikker.com/help/index.html 一、Fikker主控安装与设置 1、安装主控 Fikker的主控是绿色版,下载 https://www.fikker.com/dl/FikkerCDN.zip,解压到D盘根目录,安装vcredist_x86 目录下的 vs9/vs10/vs12/vs15/vs17 微软运行库,然后运行 注册服务.bat 和 启动服务.bat,即可使用。 管理员登录地址: http://主控ip:1280/fikcdn/admin/ 登录帐号:admin,初始密码:123qwe 监控员登录地址: http://主控ip:1280/fikcdn/admin/ 登录帐号:keeper,初始密码:123qwe 注意:此账户已被默认冻结,可在【用户管理】中自行开启。 用户端登录地址:http://主控ip:1280/fikcdn/cdn/ 说明: 用户端帐号由管理员创建/删除/冻结。 2、开放注册 a、修改 ~\webroot\fikcdn\config\config_global.php 里的配置 $FikConfig_AllowRegister = false 修改为 true b、用户注册链接地址为:http://your-cdn-ip:1280/fikcdn/cdn/register.php c、开通支付宝在线充值,配置文件为: ~\webroot\fikcdn\config\alipay_config.php 3、设置支付宝充值 打开:https://openhome.alipay.com/platform/accountSetting.htm,查询PID 然后,打开:https://openhome.alipay.com/platform/keyManage.htm?keyType=partner,获取安全校验码(key) 二、Fikker被控安装与设置 网上流传的fikkerd-3.7.6全功能破解版。 Centos7下的安装: wget https://zhujiwiki.com/wp-content/uploads/2020/04/fikkerd-3.7.6-linux-x86-64.tar.gz tar zxvf fikkerd-3.7.6-linux-x86-64.tar.gz cd fikkerd-3.7.6-linux-x86-64/ chmod +x ./bin/fikkerd ./fikkerd.sh install ./fikkerd.sh start 开放端口 firewall-cmd …

微信扫一扫,分享到朋友圈

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