1. 首页
  2. Python

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

“u003Cdivu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15274682714018a7da902c3″ img_width=”1280″ img_height=”980″ alt=”喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E我们在做Python爬虫脚本的时候,往往希望在运行的过程中可以实时查看到我的下载进度!之前我也一直想实现这个功能(绝对不是为了炫(装)耀(B)),也查看了很多博客但是各种解决方案都不是很满意(当然,progressBar和tqdm这两个库都是可选择也可操作的),很多时候我们需要一些定制功能的时候就需要考虑自己实现,这个功能其实很简单,我们可以自己去实现它!u003Cu002Fpu003Eu003Ch1u003E实现办法u003Cu002Fh1u003Eu003Cpu003E进度条最大的问题是实现输出在一行,且实时变化,不要换行。有的同学可能已经想到了,有2种办法:u003Cu002Fpu003Eu003Cpu003E一个是来自sys库的sys.stdout.write()函数u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1527469146484ec34e95abe” img_width=”685″ img_height=”245″ alt=”喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E可以替代print的一个函数,具体的大家可以自行查找相关资料哦,我们今天用第二种办法:u003Cu002Fpu003Eu003Cpu003Eprint本身就有可以实现的办法,比如下面的代码,大家可以运行下!u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15274695135343f4dc11985″ img_width=”226″ img_height=”64″ alt=”喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E这段代码会生成一个缓缓前行的‘>’,是不是很简单。重点是’\r’和end参数,\r是跳到行开头,end=”是将原本的print完成后换行改为不换行,这样就实现了这个小功能u003Cu002Fpu003Eu003Cpu003E那么,进度条完成了,怎么和我们的代码结合,比如我们下载1个10M的东东,怎么控制每1M显示10%呢,这就用到了我们爬虫最常用的一个库requests库的一个功能了u003Cu002Fpu003Eu003Cdivu003Eu003Cstyleu003E #pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } u002F*pc 样式*u002F .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: ” “; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https:u002Fu002Fs0.pstatp.comu002Fpgcu002Fv2u002Fpgc_tplu002Fstaticu002Fimageu002Fcommodity_buy_f2b4d1a.png); }u003Cu002Fstyleu003Eu003Cdiv id=”pgc-card” class=”pgc-card”u003E u003Ca href=”https:u002Fu002Fifeeds.taobao.comu002Fcontentu002Fedetail?pid=mm_118561788_16552663_120508679&subPid=mm_45324017_44416218_453860440&itemId=535882394166&source=toutiao&dx=1″ target=”_blank” class=”pgc-card-href”u003E u003Cdiv class=”pgc-cover” style=”background-image:url(https:u002Fu002Fimg.alicdn.comu002Ftfscomu002Fi4u002F2049420857u002FTB22Z2RoKySBuNjy1zdXXXPxFXa_!!2049420857-0-item_pic.jpg)”u003Eu003Cu002Fdivu003E u003Cdiv class=”pgc-content”u003E u003Cdiv class=”pgc-content-title”u003E现货 Python编程从入门到实践python3.5绝技核心编程基础教程网络爬虫入门书籍python视频编程从入门到精通程序设计教材u003Cu002Fdivu003E u003Cdiv class=”pgc-content-desc”u003Eu003Cu002Fdivu003E u003Cdiv class=”pgc-content-price”u003E¥69.8u003Cu002Fdivu003E u003Cu002Fdivu003E u003Cdiv class=”pgc-card-buy”u003E u003Cdivu003Eu003Ci class=”pgc-icon-buy”u003Eu003Cu002Fiu003Eu003Cu002Fdivu003E u003Cdiv class=”pgc-buy-text”u003E购买u003Cu002Fdivu003E u003Cu002Fdivu003E u003Cu002Fau003Eu003Cu002Fdivu003Eu003Cu002Fdivu003Eu003Cdivu003Eu003Cstyleu003E #pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } u002F*pc 样式*u002F .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: ” “; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https:u002Fu002Fs0.pstatp.comu002Fpgcu002Fv2u002Fpgc_tplu002Fstaticu002Fimageu002Fcommodity_buy_f2b4d1a.png); }u003Cu002Fstyleu003Eu003Cdiv id=”pgc-card” class=”pgc-card”u003E u003Ca href=”https:u002Fu002Fifeeds.taobao.comu002Fcontentu002Fedetail?pid=mm_118561788_16552663_120508679&subPid=mm_45324017_44416218_453860440&itemId=566647006028&source=toutiao&dx=1″ target=”_blank” class=”pgc-card-href”u003E u003Cdiv class=”pgc-cover” style=”background-image:url(https:u002Fu002Fimg.alicdn.comu002Ftfscomu002Fi1u002F1893550340u002FTB2VMSHrGSWBuNjSsrbXXa0mVXa_!!1893550340-0-item_pic.jpg)”u003Eu003Cu002Fdivu003E u003Cdiv class=”pgc-content”u003E u003Cdiv class=”pgc-content-title”u003EPYTHON3网络爬虫开发实战 崔庆才 著作 程序设计(新)专业科技 新华书店正版图书籍 人民邮电出版社u003Cu002Fdivu003E u003Cdiv class=”pgc-content-desc”u003Eu003Cu002Fdivu003E u003Cdiv class=”pgc-content-price”u003E¥62.5u003Cu002Fdivu003E u003Cu002Fdivu003E u003Cdiv class=”pgc-card-buy”u003E u003Cdivu003Eu003Ci class=”pgc-icon-buy”u003Eu003Cu002Fiu003Eu003Cu002Fdivu003E u003Cdiv class=”pgc-buy-text”u003E购买u003Cu002Fdivu003E u003Cu002Fdivu003E u003Cu002Fau003Eu003Cu002Fdivu003Eu003Cu002Fdivu003Eu003Cpu003Eu003Cstrongu003E用requests库相关功能实现分段下载u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpreu003E一般情况下我们下载文件使用的是requests.get(url).content的方法来下载文件的二进制格式,然后在保存即可!这里我们添加一个参数steam=True,在对下载的文件大小进行指定,比如每次下载1024b,最后获取文件的总大小,即可完成我们的功能实现了!u003Cbru003E来看下面的代码:u003Cbru003Eu003Cu002Fpreu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15274705573406045d9a325″ img_width=”870″ img_height=”301″ alt=”喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E这个函数就实现了通过文件的url+保存路径和名字2个参数,下载文件,并提供一个简单的进度条以及消耗时间的功能,我们下载个文件,试试效果:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002F1527472227228b3b4a7d371″ img_width=”968″ img_height=”523″ alt=”喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eok~是不是很简单~~大家也可以在里面按自己的喜好添加各种元素哦!u003Cu002Fpu003Eu003Cpu003E如果有更好的办法,也喜欢在评论区发一下,大家一起讨论下!u003Cu002Fpu003Eu003Ch1u003E写在最后u003Cu002Fh1u003Eu003Cpu003E前几天有私信我要Python的学习资料,我这里呢整理了一些Python教程和参考资料,从入门到高级的都有,包括学习建议以及学习路线,正在学习Python的同学可以来找我要哦。关注后私信回复“资料”即可。u003Cu002Fpu003Eu003Cpu003E首先把代码撸起来!首先把代码撸起来!首先把代码撸起来!重要的事说三遍,哈哈。u003Cu002Fpu003Eu003Cpu003E“编程是门手艺活”。什么意思?得练啊。u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!

主题测试文章,只做测试使用。发布者:战鹰,转转请注明出处:http://www.cxybcw.com/13310.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code