python URLError,HTTPError 的异常处理
URLError,HTTPError 的异常处理
1. URLError
URLError产生的原因
1). 网络无连接
2). 连接不到特定的服务器
3). 服务器不存在
# 例子
import urllib2
request = urllib2.Request("http://123xxx.com")
try:
urllib2.urlopen(request)
except urllib2.URLError,e:
print (e.reason)
2. HTTPError
HTTPError是URLError的子类。
HTTP状态码表示HTTP协议所返回的响应的状态:
100:继续 客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。
101: 转换协议 在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。只有在切换新的协议更有好处的时候才应该采取类似措施。
102:继续处理 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。
200:请求成功 处理方式:获得响应的内容,进行处理
201:请求完成,结果是创建了新资源。新创建资源的URI可在响应的实体中得到 处理方式:爬虫中不会遇到
202:请求被接受,但处理尚未完成 处理方式:阻塞等待
204:服务器端已经实现了请求,但是没有返回新的信 息。如果客户是用户代理,则无须为此更新自身的文档视图。 处理方式:丢弃
300:该状态码不被HTTP/1.0的应用程序直接使用, 只是作为3XX类型回应的默认解释。存在多个可用的被请求资源。 处理方式:若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃
301:请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源 处理方式:重定向到分配的URL
302:请求到的资源在一个不同的URL处临时保存 处理方式:重定向到临时的URL
304:请求的资源未更新 处理方式:丢弃
400:非法请求 处理方式:丢弃
401:未授权 处理方式:丢弃
403:禁止 处理方式:丢弃
404:没有找到 处理方式:丢弃
500:服务器内部错误 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。
501:服务器无法识别 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。
502:错误网关 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
503:服务出错 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。
# eg_v1 (捕获的异常是HTTPError,它会带有一个code属性,就是错误代号)
import urllib2
req = urllib2.Request("http://blog.csdn.net/cqcre")
try:
urllib2.urlopen(req)
except urllib2.HTTPError,e:
print (e.code)
print (e.reason)
# eg_v2 (父类的异常应当写到子类异常的后面,如果子类捕获不到,那么可以捕获父类的异常)性进行判断,以免出现属性输出报错的现象)
import urllib2
req = urllib2.Request("http://blog.csdn.net/cqcre")
try:
urllib2.urlopen(req)
except urllib2.URLError,e:
if hasattr(e,"reason")
print (e.reason)
else:
print ("OK")
# eg_v3 (首先对异常的属性进行判断,以免出现属性输出报错的现象)
import urllib2
req = urllib2.Request("http://blog.csdn.net/cqcre")
try:
urllib2.urlopen(req)
except urllib2.URLError,e:
if hasattr(e,"reason")
print (e.reason)
else:
print ("OK")
python URLError,HTTPError 的异常处理的更多相关文章
- Python爬虫中的URLError\HTTPError异常类,异常的抛出
# _*_ coding : utf-8 _*_# @Time : 2021/11/2 14:20# @Author : 秋泊酱 import urllib.request import urllib ...
- Python全栈【异常处理】
Python全栈[异常处理] 本节内容: 1.异常处理 2.什么时候用异常处理 异常处理 1.异常处理: 异常就是程序运行时发生错误的信号,异常处理是在编程过程中为了增加友好性,在程序出现bug时一般 ...
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
- Python标准异常和异常处理详解
python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 1.异常处理: 本站Python教程会具体介绍. 2.断言(Asserti ...
- Python开发基础-Day23try异常处理、socket套接字基础1
异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...
- python基础之try异常处理、socket套接字基础part1
异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...
- 【Python开发】urllib2异常处理
一.urllib2模块回顾 urllib2模块中最重要的函数是urlopen()函数,用于获取URLs资源(Uniform Resorce Locators).urlopen函数不仅可以用于简单的情况 ...
- python面向对象其他相关-异常处理-反射
1.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 2.issubclass(sub, super) 检查sub类是否是 super 类的派生类 n1 = 10 ...
- 洗礼灵魂,修炼python(28)--异常处理(2)—>运用异常
你可能会想,卧槽这标题取的,前面不是说异常就是报错吗?异常还能运用? 是的,异常确实可以运用,可以刻意制造异常,在出现异常时捕获异常并对异常处理,所以进入本篇博文的话题—异常处理 异常处理: 异常处理 ...
随机推荐
- android下的样式
android中控件,假如我们把样式都写死在控件的配置文件上的话.一旦改动可谓牵一发而动千军.那么我们能够把样式写在style.xml文件里.然后引用,在API14以上版本号. 该文件位于values ...
- Python3学习之路~2.9 字符编码与转码
详细文章: http://www.cnblogs.com/yuanchenqi/articles/5956943.html http://www.diveintopython3.net/strings ...
- 鼠标 DPI与CPI
何为dpi: dpi英文全称是“dots per inch”,直译为“每英寸像素”,意思是每英寸的像素数.(1 英寸=2.54cm),是指鼠标内的解码装置所能辨认每英寸长度内像素数.(屏幕上最小单位是 ...
- CAS缺点
CAS虽然很高效的解决原子操作,但是CAS仍然存在三大问题.ABA问题,循环时间长开销大和只能保证一个共享变量的原子操作 1. ABA问题.因为CAS需要在操作值的时候检查下值有没有发生变化,如 ...
- Redis入门到高可用(二)—— Redis启动及使用
1. 三种启动方式 ♦️ 最简启动 ./redis-server 使用Redis默认配置进行启动; ♦️ 动态参数启动 * redis-server --port 6380 更改端口为6380并 ...
- Jsp与Servlet面试题
一.jsp有哪些内置对象作用分别是什么 答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): request 用户端请求,此请求会包含来自GET/POST请求的参数 respo ...
- MySQL数据库之part1
一.初始数据库 链接:http://www.cnblogs.com/linhaifeng/articles/7126847.html 一.MySQL介绍 1.MySQL是什么 MySQL是一个关系型数 ...
- HTTP通信机制
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接, ...
- Hadoop书单词
Hadoop fundamentals :Hadoop原理 英 [ˌfʌndə'mentlz] 美 [ˌfʌndə'mentlz] n.原理; 基本原则,基本法则( fundamental的名词复数) ...
- sqli-labs(十二)(and和or的过滤)
第二十五关: 这关是过滤了and 和or 输入?id=1' or '1'='1 发现or被过滤了,将or换成and也一样. 输入?id=1' oorr '1'='1 这样就可以了,将一个or置空后,o ...