爬虫相关,python异常值的处理/防错机制的建立

概念

异常指的是在程序运行过程中发生的异常事件,通常是由外部问题(如硬件错误、输入错误)所导致的。

异常处理的特征

1,追踪信息
2,类型
3,内容

处理异常的原因

1,提高程序的稳定性,即便程序运行时报错,也不终止程序,比如爬取数据的时候,要爬取500页的内容,我们当然不希望在爬取第200页的时候因为页面缺少了什么信息而导致整个爬虫过程重新来过,简单来说,就是爬虫中常用的防错机制

2,另一种需求就是将出错信息记录到日志内,便于程序的调整

对异常的处理方法

对于语法上的错误
比如SyntaxError,在程序运行前检查发现并改正即可

对于逻辑上的错误
错误发生的情况是可以预知的,那么就用if解决

for letter in 'python':
	 if letter == 'h':
		  continue#注意,这里跳过了字符h
	 print(letter,end=',')

效果
在这里插入图片描述
错误发生的情况无法预知的时候,那么就用try-except解决
用法一

try:
    #可能抛出异常的代码
    代码模块1
    代码模块2
    代码模块3
except 异常类型1 as e:
    pass
except 异常类型2 as e:
    pass

使用范例

datalst = []
for u in urllst[:10]:
	#建立防错机制
    try:
        datalst.append(get_data(u))
        print('数据采集成功,总共采集%i条数据' % len(datalst))
    except:
        errorlst.append(u)
        print('数据采集失败,数据网址为:',u)

用法二

try:
    print('测试test测试test')
    l=['aaaAAAAAAAAAAAAAAAAAAAAbbbb']
    #抛出异常IndexError,该行代码同级别的后续代码不会运行
    print('5555555555555555555555')
    XXCCQ
    print('5555555555555555555555')
    dic={'A':8}
    dic['A']
except IndexError as e:
    print('异常信息: ',e)
except NameError as e:
    print('异常信息: ',e)

效果
在这里插入图片描述
用法三

try:
    print('异常范例测试A')
    l = ['码农', '大码农']
    l[3] # 抛出异常IndexError,该行代码同级别的后续代码不会运行
    print('异常范例测试B')
    xxx
    print('异常范例测试C')
    dic = {'超级码农': 1}
    dic['超级超级码农']

except Exception as e:  # 相对于方法二而言,对异常做了个整合
    print('可以匹配所有异常')

效果
在这里插入图片描述
用法四

#else不能单独与try配套使用,必须搭配except


try:
    print('异常范例测试A')
    print('异常范例测试B')
    print('异常范例测试C')
except Exception as e:  # 整合异常
    print('可以匹配所有异常')
else:
    print('===='*20)

效果
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丰。。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值