解决:python3多个异常,urllib.error.ContentTooShortError异常、ururllib.error.ContentTooShortError异常,导致图片无法下载

处理方式:使用try、except 异常处理

  • 至多3次重新下载图片
  • 重新下载图片失败后,保存图片链接到文件里,以后可以自己手动下载
# 下载漫画到本地(如果漫画图片不在本地)
if single_page not in os.listdir(imgdest):
    try:
        # url:下载链接地址, 保存本地图片路径+名称
        urlretrieve(url = network_img_Url,filename = filename)
        print('\n正在下载这张漫画图片.....下载完成√')
    # 下载图片触发触发异常
    except (urllib.error.ContentTooShortError , urllib.error.HTTPError):
        errorDown = 0
        # 当成功下载图片,跳出循环
        while single_page not in os.listdir(imgdest):
            errorDown = errorDown + 1
            print('\n触发异常!!重新下载图片 第 ',errorDown , ' 次')
            urlretrieve(url = network_img_Url,filename = filename)
            print('\n正在下载这张漫画图片.....下载完成√')
            # 最多下载次数
            if errorDown > 3:
                break
    	# 图片下载失败,则将异常写入文件
    	if single_page not in os.listdir(imgdest):
       	 	error_logs = open('picDownloadError_log.txt','a')
        	error_logs.write(comic_name, chapter_name,' 转码前图片链接:', network_img_Url_pre,'\n')
else:
    print(filename+"\n此张漫画已存在,继续检测下一张")

涉及到处理带有汉字的图片链接方法,请参考:如何处理带有汉字的网络图片链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值