栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫相关,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)

效果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号