前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!

喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!

作者头像
云飞
发布2018-09-14 16:35:50
1.2K0
发布2018-09-14 16:35:50
举报
文章被收录于专栏:云飞学编程云飞学编程

我们在做Python爬虫脚本的时候,往往希望在运行的过程中可以实时查看到我的下载进度!之前我也一直想实现这个功能(绝对不是为了炫(装)耀(*)),也查看了很多博客但是各种解决方案都不是很满意(当然,progressBar和tqdm这两个库都是可选择也可操作的),很多时候我们需要一些定制功能的时候就需要考虑自己实现,这个功能其实很简单,我们可以自己去实现它!

实现办法

进度条最大的问题是实现输出在一行,且实时变化,不要换行。有的同学可能已经想到了,有2种办法:

一个是来自sys库的sys.stdout.write()函数

可以替代print的一个函数,具体的大家可以自行查找相关资料哦,我们今天用第二种办法:

print本身就有可以实现的办法,比如下面的代码,大家可以运行下!

这段代码会生成一个缓缓前行的‘>’,是不是很简单。重点是' '和end参数, 是跳到行开头,end=''是将原本的print完成后换行改为不换行,这样就实现了这个小功能

那么,进度条完成了,怎么和我们的代码结合,比如我们下载1个10M的东东,怎么控制每1M显示10%呢,这就用到了我们爬虫最常用的一个库requests库的一个功能了

用requests库相关功能实现分段下载

代码语言:javascript
复制
一般情况下我们下载文件使用的是requests.get(url).content的方法来下载文件的二进制
格式,然后在保存即可!这里我们添加一个参数steam=True,在对下载的文件大小进行指
定,比如每次下载1024b,最后获取文件的总大小,即可完成我们的功能实现了!来看下
面的代码:

这个函数就实现了通过文件的url+保存路径和名字2个参数,下载文件,并提供一个简单的进度条以及消耗时间的功能,我们下载个文件,试试效果:

ok~是不是很简单~~大家也可以在里面按自己的喜好添加各种元素哦!

如果有更好的办法,也喜欢在评论区发一下,大家一起讨论下!

写在最后

前几天有私信我要Python的学习资料,我这里呢整理了一些Python教程和参考资料,从入门到高级的都有,包括学习建议以及学习路线,正在学习Python的同学可以来找我要哦。

首先把代码撸起来!首先把代码撸起来!首先把代码撸起来!重要的事说三遍,哈哈。

“编程是门手艺活”。什么意思?得练啊。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云飞学python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现办法
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档