解决Python爬虫在爬资源过程中使用urlretrieve函数下载文件不完全且避免下载时长过长陷入死循环,并在下载文件的过程中显示下载进度
原创文章,作者:StubbornHuang,如若转载,请注明出处:《解决Python爬虫在爬资源过程中使用urlretrieve函数下载文件不完全且避免下载时长过长陷入死循环,并在下载文件的过程中显示下载进度》https://www.stubbornhuang.com/33/
import urllib
from urllib.request import urlretrieve
#解决urlretrieve下载文件不完全的问题且避免下载时长过长陷入死循环
def auto_down(url,filename):
try:
urlretrieve(url,filename,jindu)
except socket.timeout:
count = 1
while count <= 15:
try:
urlretrieve(url, filename,jindu)
break
except socket.timeout:
err_info = 'Reloading for %d time' % count if count == 1 else 'Reloading for %d times' % count
print(err_info)
count += 1
if count > 15:
print("下载失败")
#urlretrieve()的回调函数,显示当前的下载进度
#a为已经下载的数据块
#b为数据块大小
#c为远程文件的大小
global myper
def jindu(a,b,c):
if not a:
print("连接打开")
if c<0:
print("要下载的文件大小为0")
else:
global myper
per=100*a*b/c
if per>100:
per=100
myper=per
print("当前下载进度为:" + '%.2f%%' % per)
if per==100:
return True
当前分类随机文章推荐
- Python3 - 正则表达式去除字符串中的特殊符号
- 简单粗暴:使用pycharm安装对应的Python版本第三方包
- opencv-python - 读取视频,不改变视频分辨率修改视频帧率
- Python3爬虫 - requests库的requests.exceptions所有异常详细说明
- Pip - 常用命令(安装,卸载,升级第三方库)
- Python3爬虫 - requests的请求响应状态码(requests.status_code)
- Python3 - 导入模块和函数
- Python3爬虫 - requests库
- Python:UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 12305,以及中文乱码的解决方案
- 解决Python爬虫在爬资源过程中使用urlretrieve函数下载文件不完全且避免下载时长过长陷入死循环,并在下载文件的过程中显示下载进度
全站随机文章推荐
- OpenCV - 打开视频文件,并对其中的每一帧图像进行Canny算子边缘化提取,并将结果保存为视频文件
- VTK - 冠脉重建点匹配坐标数据下载
- 资源分享 - Real-Time Shadows英文高清PDF下载
- UnrealEngine4 - 将FTexture2DRHIRef保存为图片
- C++ - 使用Websocket++编写客户端连接WebSocket服务器并进行通信
- 资源分享 - Handbook of Discrete and Computational Geometry, Third Edition英文高清PDF下载
- 资源分享 - Ray Tracing - The Rest of Your Life英文高清PDF下载
- Centos7 编译C++项目错误解决 : terminate called after throwing an instance of 'std::regex_error'
- Windows 批处理文件bat执行完自动退出cmd黑窗口
- UnrealEngine4 - error C4668: 没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif