萌新求教,requests问题
请问怎么确保这个ts_info请求不出错呢for ts in p_bar:
ts_info = requests.get(url=ts)
if ts_info.status_code == 200:
with open(ts_path + '.MP4', mode='ab') as f:
f.write(ts_info.content)
count += 1
p_bar.close()
else:
print(ts_info.status_code, f'{ts}响应错误') try一下
参考:
try:
with closing(requests.get(url, stream=True, headers=tmpHeader, timeout=timeout)) as r:
r.raise_for_status() #不是200,引发HTTPError异常
with open(tmpLocalFile, 'ab+') as f:
f.seek(size)
f.truncate()
for chunk in r.iter_content(chunk_size=block):
if chunk:
f.write(chunk)
f.flush()
size += len(chunk)
self.__setDownSize(tmpLocalCfg, tmpLocalCfgFile, size)
self.__showProgress(size, totalSize)
#下载完成 临时文件名 改为 正式文件名 并删除配件文件
os.rename(tmpLocalFile, localPath)
os.remove(tmpLocalCfgFile)
self.__finished = True
break
except ConnectionError:
self.__setState(self.__cfg, '【网络连接错误】重试第 %d 次' % (i))
except HTTPError as e:
self.__setState(self.__cfg, '【HTTP 错误】重试第 %d 次' % (i))
except URLRequired:
self.__setState(self.__cfg, '【URL缺失】重试第 %d 次' % (i))
except TooManyRedirects:
self.__setState(self.__cfg, '【超过最大重定向次数】重试第 %d 次' % (i))
except ConnectTimeout:
self.__setState(self.__cfg, '【连接远程服务器超时】重试第 %d 次' % (i))
except Timeout:
self.__setState(self.__cfg, '【请求URL超时】重试第 %d 次' % (i))
except Exception as e:
self.__setState(self.__cfg, str(e))
break
finally:
if not support_continue:
self.__deleteTmpFile(tmpLocalFile, tmpLocalCfgFile)
else:
if not self.__finished:
self.__setDownSize(tmpLocalCfg, tmpLocalCfgFile, size) ba21 发表于 2022-6-16 19:37
try一下
参考:
牛批 本帖最后由 临时号 于 2022-6-17 00:37 编辑
使用try进行异常处理
try:
for ts in p_bar:
ts_info = requests.get(url=ts)
if ts_info.status_code == 200:
with open(ts_path + '.MP4', mode='ab') as f:
f.write(ts_info.content)
count += 1
p_bar.close()
else:
print(ts_info.status_code, f'{ts}响应错误')
except Error:
print("连接错误") ba21 发表于 2022-6-16 19:37
try一下
参考:
噢,大佬你这太高深了,但不影响我的膜拜{:10_256:} 临时号 发表于 2022-6-17 00:21
使用try进行异常处理
感谢
wandnine 发表于 2022-6-17 10:40
噢,大佬你这太高深了,但不影响我的膜拜
大佬问下,这个异常处理只是起到提醒作用吧,如果我知道他会出错,怎么纠正这个错误呢(最大重连数也无效了)
页:
[1]