1081
文章
873708
访问
暂无分类
暂无标签
暂无数据
发布于2021-02-06 17:32 阅读(1901) 评论(0) 点赞(29) 收藏(1)
本篇内容知识点:
1.使用tqdm库对可迭代对象进行进度可视化操作
2.使用requests进行简单爬取并下载文件
可迭代对象什么意思:
以Python为例,可迭代对象的意思是指存储了元素的一个容器对象,且容器中的元素可以通过iter( )方法或getitem( )方法访问。并不是指某种具体的数据类型。常见的可迭代对象包括:集合数据类型,如list、tuple、dict、set、str等…
安装:
pip install tqdm
pip install requests
库安装问题在此不过多解释,出现问题自行查找其他资料
最常见的一套“下载模板”
import requests
url='某某文件路径'
response=requests.get(url) # 向地址发送一个get请求以获取响应对象
with open('文件名.后缀名','wb') as f:
f.write(date)
# wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,
# 即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
#更多文件打开的模式:https://www.runoob.com/python/python-files-io.html
tqdm库比较简单易懂的使用方法
使用tqdm必须知道的几个常见参数:
iterable:可迭代的对象 默认None
total:进度条总长度大小(int or float)默认None
desc:进度条的前缀内容(str)默认None
unit:进度条的单位(str)默认 it ,实际表带为 it/s
一、迭代对象的处理
from tqdm import tqdm
import time
for i in tqdm(iterable=range(100),desc='我是前缀',unit='我是单位'):
time.sleep(0.1) #延时0.1秒
pass
效果如下
二、需要自定义进度条的增长间隔
from tqdm import tqdm
import time
lt=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y"]
with tqdm(iterable=lt,desc='遍历字母',unit='个',total=len(lt)) as pgbr:
for index,l in enumerate(lt):
if index%5==0:
time.sleep(1) # 延时1秒
pgbr.update(5) # 进度条一次增长5个单位
print(l)
效果如下
下载文件结合tqdm用法
from tqdm import tqdm
import requests
url='https://dldir1.qq.com/qqtv/TencentVideo11.14.4043.0.exe'
response=requests.get(url,stream=True) # 设stream流传输方式为真
print(response.headers) # 打印查看基本头信息
data_size=int(response.headers['Content-Length'])/1024/1024 # 字节/1024/1024=MB
with open('测试.exe','wb') as f:
for data in tqdm(iterable=response.iter_content(1024*1024),total=data_size,desc='正在下载',unit='MB'):
f.write(data)
效果如下
要点解释:
1.response.get(stream=True) 这一点必须为True,其详细解释请查iter_content函数的说明,或者找其他资料理解
2.iter_content(chunk_size) chunk_size参数的理解见下图
3.TqdmWarning: clamping frac to range [0, 1]full_bar = Bar(frac, … 这个警告我也未找到原因,网络上也未找到相同的问题,有大佬知道的也请告知一声 。(个人猜测与iter_content(chunk_size)的size有关)
理解chunk_size
因此我将iter_content(chunk_size)->chunk_size理解为一个列表的容量,
而iterable=response.iter_content(1024*1024)理解为分割字符串的函数,
将response.content分割为每个元素的长度是1024*1024大小的列表,在对每个部分进行下载。
这只是助于理解chunk_size的一个方法
而response.iter_content 是流传输(简单说就是边下载边写入磁盘),如果将chunk_size设置的很小,意味着每次
下载和存在很小的一部分,下载的速度也会很慢,如果设置的很大,则进度条的进度会错乱,因此我们在确定chunk_size
大小的时候应该对应文件大小,data_size除以多少,chunk_size就乘以多少,才能使进度条对应。
本篇内容仅供学习参考交流,有错误的地方请大家指正
原文链接:https://blog.csdn.net/xyl192960/article/details/113695405
程序员说:42岁了,突然觉得研发前途渺茫
中国程序员数量达755万,全球排名第二
为什么都说程序员找不到女朋友,但是身边程序猿的却没一个单身的?
程序员说:30岁以上你还死磕技术,别说拿高薪,可能你连饭碗都会保不住
程序员被开除,老板:“有你参与的项目全黄了!”
笑话:一个测试工程师走进一家酒吧
笑话:面试官:请拿出一段体现你水平的代码。我: sudo rm -rf /*面试官:这体现了你哪方面能力?
python精选:Python 办公实战!按姓名拆分 Excel 为单独文件,微信自动发给相应联系人
网友说:做开发,不被领导喜欢怎么办?
网友说:我奉劝各位,一定不能在职场透露自己的家庭条件
作者: 奋斗
链接: https://www.pythonheidong.com/blog/article/818609/2134379e4c64bf96a34e/
来源: python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!
关于本站/关于站长
深圳SEO优化公司松岗高端网站设计南山外贸网站设计深圳至尊标王福田关键词按天扣费布吉网络营销龙岗网站优化排名坂田网站推广方案民治高端网站设计永湖模板推广坪山网站排名优化石岩网站制作爱联百度竞价包年推广大浪seo民治网站优化软件布吉百度网站优化排名沙井网站优化深圳网页制作盐田企业网站建设西乡建设网站丹竹头百度关键词包年推广石岩seo网站推广同乐企业网站改版坂田网站改版宝安营销型网站建设横岗网站优化按天收费南联网站推广同乐网站优化按天扣费光明网站开发民治英文网站建设东莞百度竞价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运