一、urllib.error

python的urllib.error模块主要是应对urllib.request在网络请求过程中出现的异常而定义的异常处理类。主要有URLError和HTTPError两个类,URLError的父类是OSError,HTTPError是URLError的子类。

1.urllib.error.URLError

URLError是OSError的子类,当请求过程中没有网络连接,域名映射的服务器不存在都会抛出异常。

属性reason,说明产生异常的原因,返回一个字符串错误信息或者另外一个异常实例对象。

 import urllib.request
import urllib.error try:
request = urllib.request.Request('http://www.baidu.com/')
response = urllib.request.urlopen(request)
print(response.read().decode('utf-8'))
except urllib.error.HTTPError as e:
print('http error:%s' % e.reason)
except urllib.error.URLError as e:
print('url error:%s' % e.reason)

产生异常:

Request参数Url传入一个不存在的域名地址www123.baidu.com或者直接拔掉网线(禁用网络连接),程序就会抛出URLError

request = urllib.request.Request('http://www123.baidu.com/')

捕捉并打印异常信息:url error:[Errno 11004] getaddrinfo failed

2.urllib.error.HTTPError

HTTPError是URLError的子类,urllib.request.urlopen()请求过程中产生HTTP错误,例如资源不存在、身份授权异常,服务器内部错误等。

属性code,返回http请求的状态码,例如200、404、500等

属性reason,说明产生异常的原因,返回一个字符串错误信息。

属性headers,urllib.request请求触发HTTP Error异常,返回响应的请求头headers信息。

 import urllib.request
import urllib.error try:
request = urllib.request.Request('https://www.cnblogs.com/123.html')
response = urllib.request.urlopen(request)
print(response.read().decode('utf-8'))
except urllib.error.HTTPError as e:
print('http error: http code :{0},error msg :{1}'.format(e.code, e.reason))
except urllib.error.URLError as e:
print('url error:%s' % e.reason)

产生异常:
Request参数Url传入一个不存在的页面地址123.html,请求的资源不存在,程序就会抛出HTTPError异常

request = urllib.request.Request('https://www.cnblogs.com/123.html')

捕捉并打印异常信息:http error: http code :404,error msg :Not Found

Python爬虫基础之UrlError的更多相关文章

  1. Python爬虫基础

    前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...

  2. python爬虫-基础入门-python爬虫突破封锁

    python爬虫-基础入门-python爬虫突破封锁 >> 相关概念 >> request概念:是从客户端向服务器发出请求,包括用户提交的信息及客户端的一些信息.客户端可通过H ...

  3. python爬虫-基础入门-爬取整个网站《3》

    python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python ...

  4. python爬虫-基础入门-爬取整个网站《2》

    python爬虫-基础入门-爬取整个网站<2> 描述: 开场白已在<python爬虫-基础入门-爬取整个网站<1>>中描述过了,这里不在描述,只附上 python3 ...

  5. python爬虫-基础入门-爬取整个网站《1》

    python爬虫-基础入门-爬取整个网站<1> 描述: 使用环境:python2.7.15 ,开发工具:pycharm,现爬取一个网站页面(http://www.baidu.com)所有数 ...

  6. Python爬虫基础之认识爬虫

    一.前言 爬虫Spider什么的,老早就听别人说过,感觉挺高大上的东西,爬网页,爬链接~~~dos黑屏的数据刷刷刷不断地往上冒,看着就爽,漂亮的校花照片,音乐网站的歌曲,笑话.段子应有尽有,全部都过来 ...

  7. python 爬虫基础知识一

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 网络爬虫必备知识点 1. Python基础知识2. P ...

  8. Python爬虫基础(一)——HTTP

    前言 因特网联系的是世界各地的计算机(通过电缆),万维网联系的是网上的各种各样资源(通过超文本链接),如静态的HTML文件,动态的软件程序······.由于万维网的存在,处于因特网中的每台计算机可以很 ...

  9. 【学习笔记】第二章 python安全编程基础---python爬虫基础(urllib)

    一.爬虫基础 1.爬虫概念 网络爬虫(又称为网页蜘蛛),是一种按照一定的规则,自动地抓取万维网信息的程序或脚本.用爬虫最大的好出是批量且自动化得获取和处理信息.对于宏观或微观的情况都可以多一个侧面去了 ...

随机推荐

  1. jexus独立版设置支持https

    先用命令找到libssl.so find / -name libssl.so.* 执行完命令之后找到libssl.so.x.x.x如(libssl.so.1.0.0) 再到jexus/runtime/ ...

  2. Nginx 在线新增模块

    系统:Centos7.5 Nginx版本:1.12.2 今天给项目添加ssl证书时,发现nginx 竟然不支持ssl,经过查看,询问相关人员发现nginx编译的时候没有任何模块(历史原因).哎.... ...

  3. SVN和Git 介绍,区别,优缺点以及适用范围

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,支持大多数常见的操作系统.作为一个开源的版本控制系统,Subversion管理着随时间改变的数据.这些数据放置在一个中央资料档案库( ...

  4. 运行错误:Application Error - The connection to the server was unsuccessful

    在模拟器上上启动ionic4.6版本 打包成的android APK,启动了很久结果弹出这个问题: Application Error - The connection to the server w ...

  5. springdata 一对多 级联操作 在注解里面开启级联操作@OneToMany(mappedBy = "customer",cascade = CascadeType.ALL)

  6. 【pytorch】关于Embedding和GRU、LSTM的使用详解

    1. Embedding的使用 pytorch中实现了Embedding,下面是关于Embedding的使用. torch.nn包下的Embedding,作为训练的一层,随模型训练得到适合的词向量. ...

  7. 小米Play获取ROOT权限的经验

    小米Play通过什么方式开通了Root权限?大家知道,android机器有Root权限,一旦手机开通了root相关权限,就能够实现更多的功能,举个栗子大家企业的营销部门,使用一些营销应用都需要在Roo ...

  8. YApi二次开发环境部署

    YApi 是去哪儿网大前端技术中心开源的一个可视化的接口管理平台.下面是在CentOS7下搭建二次开发环境步骤. 1 安装MongoDB 具体安装参考CentOS7安装MongoDB 2 安装Node ...

  9. Eureka 配置

    #是否向服务注册中心注册自己,该值默认为trueeureka.client.register-with-eureka=falseserver端建议设为false #服务注册中心的配置内容,指定服务注册 ...

  10. Django中ORM介绍

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...