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

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

作者头像
云飞
发布于 2018-09-14 08:35:50
发布于 2018-09-14 08:35:50
1.2K00
代码可运行
举报
文章被收录于专栏:云飞学编程云飞学编程
运行总次数:0
代码可运行

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

实现办法

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

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

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

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

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

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

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

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

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

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

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

写在最后

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

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

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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
给Python代码加上酷炫进度条的几种姿势
大家好,在下载某些文件的时候你一定会不时盯着进度条,在写代码的时候使用进度条可以便捷的观察任务处理情况,除了使用print来打印之外,今天本文就介绍几种给你的Python代码加上酷炫的进度条的方式。
刘早起
2020/06/04
9720
Python实现【实时】显示处理进度的6种形式(附源码和动图演示)
相信大家对进度条一定不陌生了,比如在我们安装python库的时候可以看到下载的进度,此外在下载文件时也可以看到类似的进度条,比如下图这种:
Python研究者
2021/10/19
14.7K0
Python实现【实时】显示处理进度的6种形式(附源码和动图演示)
Python那些事——你不知道的python的“独门暗器”!
随着近几年人工智能的流行,从而引发了一个编程语言的兴起,我想说到这,大家应该都明白了这是什么吧,没错它就是大名鼎鼎的——Python
燕大侠V
2018/06/06
7121
Python那些事——你不知道的python的“独门暗器”!
python 进度条
print:打印末尾会自动加上换行符'\n',如果要让打印的结果一直在同一行显示,不能使用这个命令
py3study
2020/01/10
8030
Python · 进度条
我实现的这个进度条可能是可以当做一个第三方库来使用的(这个人好自大,啧),它支持记录并发程序的进度且损耗基本只来源于 Python 本身
py3study
2020/01/17
2.1K0
手把手教你用Python打造一款批量下载视频并能可视化显示下载进度的下载器
平时宅在家的我们最爱做的事莫过于追剧了,但是有时候了,网络原因,可能会让你无网可上。这个时候那些好看的电视剧和电影自然是无法观看了,本期我们要讲的就是怎样下载这些视频。
Python进阶者
2020/06/19
1.9K0
手把手教你用Python打造一款批量下载视频并能可视化显示下载进度的下载器
左手用R右手Python系列——任务进度管理
一直觉得运行代码的时候,如果有一个提示任务运行进度的进度条提示就好,很多时候我们的程序运行时间普遍较长,如果程序运行没有任何提示,那简直是一场噩梦,根本不知道到底是程序在偷懒还是真的卡住了,而如果再代码里写print函数,循环较多的话,你的屏幕会被打印的提示文本瞬间刷屏。 后来经过搜索,还真让我发现了解决方法。今天给大家介绍两个包,这两个包可以做任务任务处理、进程处理工作,编写一些简易的交互界面。 这里仅介绍简单的用法,仅仅满足我们日常任务进度提示即可。 library("tcltk") library("
数据小磨坊
2018/04/11
1.1K0
左手用R右手Python系列——任务进度管理
python进程+进度条实现赛跑效果
利用python多进程+进度条实现一个有意思的小程序 import random import time import sys from multiprocessing import Process def processBar_tortoise(num, total, name_icon):  # 进度条     rate = num / total     rate_num = int(rate * 100)     s = '起点 ' + '> ' * (total-2) + '终点'     i
py3study
2020/01/20
7640
Python制作进度条,18种方式全网最全!(不全去你家扫厕所!)
需要注意的是,由于print函数在每次循环中都会输出进度信息,并且使用了\r来覆盖前一次的输出,所以在命令行或终端中运行时,你会看到进度条不断更新,直到达到100%并显示“下载完成!”的信息。然而,在某些IDE的内置控制台或某些特定环境下,\r的行为可能不符合预期,导致进度条无法正常显示或显示混乱。在这些情况下,可以尝试调整IDE的设置或使用其他方法来实现进度条的显示。
小白的大数据之旅
2024/11/20
1.2K0
Python制作进度条,18种方式全网最全!(不全去你家扫厕所!)
如何用Python写个文本进度条?
程序员Bob(ID:gh_8a1a1530d0bf) 第218次推文 图源:小张
小Bob来啦
2020/12/15
1.4K0
如何用Python写个文本进度条?
python生成器函数的应用场景举例---为copy过程添加进度条显示
生成器的特点是可以迭代,通过dir 查看生成器的方法, 其中有next , send 方法,我们如果调用其next或者send方法都可以获得其下一个元素的值,我们可以用这种方式获得所有的生成器对应的元素,直到抛出 StopIteration 异常为止。一旦某个值已经输出了,那么我们是无法进行回溯的,就像一个“人生的单行道”一样,只能向前走,无法向后退。
qsjs
2020/09/28
1.2K0
太好玩了!6种Python实现【实时】显示进度条!
相信大家对进度条一定不陌生了,比如在我们安装python库的时候可以看到下载的进度,此外在下载文件时也可以看到类似的进度条,比如下图这种:
python大志
2021/12/13
11K0
【Linux】实现进度条小程序
在之前已经了解了 【Linux】vim的使用和 【Linux】编译器-gcc/g++使用还有 【Linux】自动化构建工具-make/Makefile,有了这些工具,这次来实现一个进度条小程序。
zxctscl
2024/03/22
2250
【Linux】实现进度条小程序
用Python给程序加个进度条
对于开发或者运维来说,使用python去完成一些跑批任务,或者做一些监控事件是非常正常的情况。那么如何有效的监控任务的进度,除了在任务中加上log外,还能不能有另一种方式来了解任务进展到哪一步了呢? 这就是今天我们来了解的内容,进度条 标准输出 首先说一下在操作系统中,都有哪些控制符: \r: 将光标移动到当前行的首位而不换行; \n:将光标移动到下一行,并不移动到首位; \r\n:将光标移动到下一行首位。 那让我们来看下如何通过python来将标准输出中添加进度条吧 import sys import
用户1634449
2018/06/29
2.4K0
初识Linux · 进度条
我们目前学习了些许知识,已经足够支持我们写一个非常非常小的项目了,即进度条,相信大家都有过下载游戏,等待游戏更新完成的时候,那么此时就有一个进度条,代表着游戏的更新进度,那么我们今天就来模拟实现这个过程,在此之前,我们需要一些预备知识。
_lazy
2024/10/16
730
初识Linux · 进度条
python编写断点续传下载软件
其实HTTP断点续传原理比较简单,在HTTP数据包中,可以增加Range头,这个头以字节为单位指定请求的范围,来下载范围内的字节流。如:
phith0n
2020/10/15
1.7K0
通过小程序进度条了解Linux下的多文件操作
在网络中进度条可以说是无处不在的,下载和上传都需要有进度条来帮助我们来判断目前的进度如何。当然今天我们写的进度条只会有其形。 再讲进度条前,先了解一下什么是回车吧
Yui_
2024/10/16
1030
通过小程序进度条了解Linux下的多文件操作
给程序加个进度条 | Python
对于开发或者运维来说,使用 Python 去完成一些跑批任务,或者做一些监控事件是非常正常的情况。那么如何有效地监控任务的进度?除了在任务中加上 Log 外,还能不能有另一种方式来了解任务进展到哪一步了呢?
昱良
2019/07/04
1.6K0
python进度条与下载器的实现
覆盖式进度条的实现 覆盖式进度条的实现是由\r会退至首行实现,不多BB,我先来个小Demo给大伙儿练练手! import time for i in range (50): print(i,end="\r") time.sleep(1) # 睡眠1秒 通过运行以上案例可以看到程序每隔1秒循环覆盖打印变量i的值,那如果打打印信息改一下呢? import time for i in range (50): print("█"*i,end="\r") time.sl
用户8988577
2022/12/27
6600
大文件下载以及进度条展示和MD5校验
使用socket网络,上传一个视频,大小在3G左右 能够显示进度条,显示花费时间 下载使用TCP协议 server向client发送文件 新建文件server.py,代码如下: import os import json import socket import struct filepath = r'E:\BaiduYunDownload\[电影天堂www.dy2018.com]移动迷宫3:死亡解药BD国英双语中英双字.mp4' sk = socket.socket() sk.bind(('127.0
py3study
2018/08/02
6880
相关推荐
给Python代码加上酷炫进度条的几种姿势
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验