urllib异常处理中HTTPError和URLError混用的注意事项
来源:互联网 发布:淘宝达人在哪里登录 编辑:程序博客网 时间:2024/06/17 15:31
运行环境:Python 3.6、Pycharm 2017.2
Python中写爬虫程序时,可以使用urllib.error
来接收urllib.request
产生的异常。urllib.error
有两个方法,URLError
和HTTPError
。
注意事项
如果在urllib.request
产生异常时,用HTTPError
和URLError
一起捕获异常,那么需要将HTTPError
放在URLError
的前面,因为HTTPError
是URLError
的一个子类。如果URLError
放在前面,出现HTTP
异常会先响应URLError
,这样HTTPError
就捕获不到错误信息了。
演示代码:
# -*- coding: utf-8 -*-# @Time : 2017/9/24 23:11 # @File : 07_CSDN_Spider_3_2.py # @Software: PyCharm# 本实例代码将HTTPError放在URLError之前,# 是正确的做法from urllib import requestfrom urllib import errorif __name__ == "__main__": url = input("Please enter a URL:") req = request.Request(url) try: response = request.urlopen(req) # html = response.read().decode('utf-8') # print(html) print("It's OK!") # 正常 except error.HTTPError as error: # HTTP错误 print('HTTPError') print('ErrorCode: %s' % error.code) except error.URLError as error: # URL错误 print(error.reason)
运行结果:
# 输入正确url时,以www.baidu.com为例Please enter a URL:http://www.baidu.comIt's OK!
# 输入一个不存在的域名时Please enter a URL:http://www.qweqwdsasdx.com[Errno 11001] getaddrinfo failed
# 输入一个正常的域名,但是不存在的资源时Please enter a URL:http://www.zhihu.com/AAA.htmlHTTPErrorErrorCode: 404
当HTTPError
放在URLError
的后面时:
当URL出现异常时,只会抛出一种异常,即URLError
# 如上输入一个不存在的资源URL时,具体应该返回404错误Please enter a URL:http://www.zhihu.com/AAA.htmlNot Found
阅读全文
0 0
- urllib异常处理中HTTPError和URLError混用的注意事项
- Python爬虫(三)——URLError和HTTPError异常处理
- Urllib库与URLError异常处理
- Python爬虫(四) URLError、HTTPError异常处理
- python学习笔记 ---- 关于URLError和HTTPError
- URLError处理异常
- urllib2:URLError与HTTPError
- Python爬虫UrlError和HttpError系列之五
- Python爬虫之URLError异常处理
- Python爬虫入门:URLError异常处理
- 在VC++中混用C++异常和结构化异常
- Python2和Python3中urllib库中urlencode的使用注意事项
- Python爬虫入门五之URLError异常处理
- Python爬虫入门(5):URLError异常处理
- Python爬虫入门(5):URLError异常处理
- Python爬虫入门五之URLError异常处理
- Python爬虫入门(5):URLError异常处理
- Python爬虫入门五之URLError异常处理
- postgres创建用户,修改用户密码,创建数据库
- mybatis入门基础(五)----动态SQL
- Lecture 7_2: Lists and mutability, dictionaries, pseudocode, introduction to efficiency
- 算法分析与设计课程——LeetCode刷题之Reverse Integer
- wr720n v4 折腾笔记(二):刷入不死Uboot
- urllib异常处理中HTTPError和URLError混用的注意事项
- Redis 哈希(Hash)
- JSTL, EL 获取数据和遍历
- mybatis入门基础(六)----高级映射(一对一,一对多,多对多)
- 第一单元作业
- Spring Boot 部署与服务配置详解
- Redis 列表(List)
- Lecture 8: Complexity; log, linear, quadratic, exponential algorithms
- POJ 2187 平面最远点对 凸包入门