爬虫下载添加进度条

def report(count, blockSize, totalSize):
  percent = int(count*blockSize*100/totalSize)
  sys.stdout.write("\r%d%%" % percent + ' complete')
  sys.stdout.write('[%-50s] %s'%( '=' * int(math.floor(count*blockSize*50/totalSize)),percent))
  sys.stdout.flush()
urlretrieve(url,'{}/第{}节.mp4'.format(self.BASE_PATH,i),reporthook=report)

[%-50s]表示50个占位符 炫酷吧!

print('[%-50s]'%('='*25))
/usr/bin/python /home/pipidi/learngit/lianjia/lianjia/spiders/aa.py
[=========================                         ]

Process finished with exit code 0


占位符的神奇用法!

--------------------2/21-------------------------------------------------------------------------------

因为不了解reporthook的用法所以我继续写了一些例子:

def myReportHook(count, blockSize, totalSize):
     print count, blockSize, totalSize



 >>> import urllib
 >>> 
urllib.urlretrieve('http://personalpages.tds.net/~kent37/Python/PythonResources.html', 
reporthook=myReportHook)
0 8192 7955
1 8192 7955
2 8192 7955
 
This result surprised me at first - why is it reading three blocks? But the 
first line is output _before_ any blocks are read (count=0); the second 
line is the actual read, and the third line is the failed read that ends 
the operation. If you look at the code for urllib.urlretrieve(), you see 
that it calls report hook for each attempted read, so it will always get an 
extra call at the end.

大体意思是第一行是开始链接,第二行是下载,第三行是结束

全部评论

相关推荐

真是做吐了🤮
投递美团等公司10个岗位 >
点赞 评论 收藏
分享
03-02 10:51
邵阳学院 Java
红鲤鱼与绿鲤鱼i:看了你的头像不像找工作,像在找妹子
点赞 评论 收藏
分享
虚闻松声:简历看起来很清爽。几点建议。 1. 总结提炼项目工作内容。如第一个项目第一点,研发用户信息管理、购票功能:(然后具体展开)。还可以继续总结,如基础功能开发、算法优化座位分配、并发性能提升等等 2. 优化技术栈描述。全文多次出现Spring Boot,我感觉一次就够了。可以不写或者写整个体技术架构? 3. 增加业务指标描述。最好有一些业务效果的指标。或者优化的效果指标等等。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务