一、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. 基于 docker 的redis 主从+哨兵(快速部署)

    很简单(字多的步骤见:http://www.cnblogs.com/vipzhou/p/8580495.html) 1.直接启动3个容器 docker network create --subnet ...

  2. jdk自带的监测cpu/内存、线程等信息的工具

    Jvisualvm:jdk自带的监控工具(JDK1.6+) 在终端中输入Jvisualvm回车出现如下界面:

  3. centos7之zabbix简单检查之端口监控

    1.创建模板 模板名字可以随便起 2.重点在监控项和触发器上. 3.比如我们创建一个监控25端口号的监控项 net.tcp.service[tcp,,25] 这个选项不是手动写上去的,是需要点击选择. ...

  4. Ubuntu系统桌面任务栏和启动器全部消失解决方案

    ubuntu桌面上没有启动器,没有任务栏,只有一个背景,但是运行正常.这种情况很可能是文件管理程序出现异常了. 解决办法: Ctrl+Alt+F1 进入命令行,输入: sudo service lig ...

  5. node配置环境变量

    package.json "scripts": { "start_test": "cross-env BUILD_ENV=dev nuxt start ...

  6. vim命令替换操作

    替换当前行第一个 vivian为sky :s/vivian/sky/ 替换当前行所有 vivian为sky :s/vivian/sky/g 替换第 n 行开始到最后一行中,每一行的第一个vivian为 ...

  7. FTP文件上传 支持断点续传 并 打印下载进度(二) —— 单线程实现

    这个就看代码,哈哈哈哈哈  需要用到的jar包是: <dependency> <groupId>commons-net</groupId> <artifact ...

  8. 常用API接口签名验证参考

    项目中常用的API接口签名验证方法: 1. 给app分配对应的key.secret2. Sign签名,调用API 时需要对请求参数进行签名验证,签名方式如下: a. 按照请求参数名称将所有请求参数按照 ...

  9. CF487E Tourists--圆方树

    既然有这条性质,这题就很简单了: \(可能在a->b的简单路径上的点集,就是圆方树上a->b路径上方点代表的点双的并集\) 对每一个方点维护一个\(multiset\),代表其在圆方树上子 ...

  10. [JSOI2010]满汉全席 2-SAT

    https://www.luogu.org/problemnew/show/P4171 意识到图中只有两种不同的菜系:满和汉 并且检查员类似于一个约束,可以发现这就是一个2-sat模型,满和汉分别对应 ...