我的编程空间,编程开发者的网络收藏夹
学习永远不晚

urllib异常处理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

urllib异常处理

urllib的error模块定义了由 request模块产生的异常。如果出现了问题,request 模块便会抛出error模块中定义的异常。

1 URLError

URLError类来自urllib库的error模块,它继承自OSError类,是error异常模块的基类,由 request模块生的异常都可以通过捕获这个类来处理

它具有一个属性reason,即返回错误的原因。

实例:

from urllib import request, error
try:
    response = request.urlopen('https://py3study111.com')
except error.URLError as e:
    print(e.reason)

打开一个不存在的域名,按理来说应该会报错,但是捕获了URLError异常后,运行结果为:

blob.png

程序没有直接报错,而是输出了上面的内容,通过异常的捕获,可以避免程序的异常终止,还可以直观地看见错误信息,方面处理



2 HTTPError

它是URLError的子类,专门用来处理HTTP请求错误,比如认证请求失败等,有三个属性。

code:返回HTTP状态码,比如404表示网页不存在,500表示服务器内部错误等。

reason:同父类一样,用于返回错误的原因。

headers:返回请求头。


实例:

from urllib import request, error
try:
    response = request.urlopen('http://www.dagouzi.cn/111.html')
except error.HTTPError as e:
    print(e.reason, e.code, e.headers, sep='\n')

运行结果:

blob.png

注释:访问一个网站不存在的页面,捕获了HTTPError异常,输出了reason,code和headers属性



因为URLError是HTTPError的父类,所以可以先选择捕获子类的错误,再去捕获父类的错误,更好的写法如下:

from urllib import request, error
try:
    response = request.urlopen('http://www.dagouzi.cn/111.html')
except error.HTTPError as e:
    print(e.reason, e.code, e.headers, sep='\n')
except error.URLError as e:
    print(e.reason)
else:
    print('Request Successfully')

注释:这样可以做到先捕获HTTPError,获取它的错误状态码,错误信息,headers信息。如果不是HTTPError异常,就会捕获URLError异常,输出错误原因。最后,用else来处理逻辑。



有时候,reason属性返回的不一定是字符串,也可能是一个对象

实例:

import socket
import urllib.request
import urllib.error

try:
    response = urllib.request.urlopen('https://www.baidu.com', timeout=0.01)
except urllib.error.URLError as e:
    if isinstance(e.reason, socket.timeout):
        print('Time out')

运行结果:

Time out


注释:直接设置超时时间来强制抛出timeout异常,reason属性的结果是socket.timeout类,这里使用isinstance()方法来判断它的类型,做出更详细的异常判断。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

urllib异常处理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

urllib异常处理

urllib的error模块定义了由 request模块产生的异常。如果出现了问题,request 模块便会抛出error模块中定义的异常。1 URLErrorURLError类来自urllib库的error模块,它继承自OSError类,
2023-01-30

python爬虫urllib中的异常模块如何处理

这篇文章主要介绍“python爬虫urllib中的异常模块如何处理”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python爬虫urllib中的异常模块如何处理”文章能帮助大家解决问题。urllib
2023-06-30

异常--python异常处理

--****--python 异常处理------------------------------------------------------------------------------****DB API中定义了一些数据库操作的错
2023-01-31

Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)

我们可以利用urllib来抓取远程的数据进行保存哦,以下是python3 抓取网页资源的多种方法,有需要的可以参考借鉴。 1、最简单import urllib.request response = urllib.request.urlope
2022-06-04

异常处理

程序中有两种错误    1.语法错误(这种错误,根本过不了Python解释器的语法检测,必须在程序执行前就改正)#错误示范一if#错误示范二print("adad"语法错误    2.逻辑错误# 用户输入不完整num = input(">>
2023-01-30

PHP异常处理:处理异步操作中的异常

处理异步操作中的 php 异常需要:协程中,使用 try-catch-finally 语法捕获异常。promise 中,使用 then() 和 catch() 方法处理异常。实战案例:使用协程处理 http 请求中的异常,并捕获和处理异常。
PHP异常处理:处理异步操作中的异常
2024-05-14

Java异常处理:理解异常类型和处理策略

通过合理的异常类型选择和适当的异常处理策略,我们可以提高程序的稳定性和可靠性。

Python -- 异常处理

当一个小人物冲向大时代,有多少伤害埋伏左右;      -- 北岛《城门开》当一个大梦想埋于小身体,有多少潜能冲破束缚。      -- 小Q 《梦想家》-------------------------------------------
2023-01-31

python异常处理

import re,random,tracebackkk ='不要惹怒胖子,后果自己看'p =
2023-01-31

Python 异常处理

写一个命令分发器初步要求 :程序员可以方便地注册函数到某一个命令, 用户输入命令时, 路由到注册的函数, 如果此命令没有对应的函数, 执行默认函数分析 :输入命令映射到一个函数, 并执行这个函数, 应该是cmd_tbl[cmd] = fn
2023-01-31

oracle异常处理

语句执行过程中,由于各种原因使得语句不能正常执行,可能会造成更大错误或整个系统的崩溃,所以PS/SQL提供了异常(exception)着一处理的方法来防止此类情况的发生。在代码运行的过程中无论何时发生错误,PL/SQL都能控制程序自动地转向执行异常部分。1.预
oracle异常处理
2016-06-04

PHP异常处理:使用Middleware异常处理中间件

php 异常处理使用 middleware 异常处理中间件,允许在应用程序的任何层处理异常,无需在每个控制器中显式处理。步骤如下:安装 symfony/error-handler 库。创建一个实现 middleware 接口的中间件类。在应
PHP异常处理:使用Middleware异常处理中间件
2024-05-14

JAVA异常与异常处理详解

一、异常简介什么是异常?异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域的情况,称之为异常。java中异常的体系是怎么样的呢?(推荐:java视频教程)1.Java中的所有不正常类都继承于Throwable类。Throwab
JAVA异常与异常处理详解
2020-06-12

PHP异常处理:浅谈异常处理设计模式

php 异常处理有两种设计模式:面向对象异常处理:使用 try-catch 块捕获特定类型的异常。过程化异常处理:使用 set_exception_handler 函数设置一个全局异常处理函数,处理所有未捕获的异常。选择设计模式取决于应用程
PHP异常处理:浅谈异常处理设计模式
2024-05-14

异常处理:PHP中如何捕获和处理异常?

异常处理:PHP中如何捕获和处理异常?在PHP开发中,异常处理是非常重要的一环。当程序发生意外情况或错误时,我们需要通过捕获和处理异常来保证程序的正常运行。PHP中提供了一套异常处理的机制,本文将介绍如何在PHP中捕获和处理异常,并提供具体
异常处理:PHP中如何捕获和处理异常?
2023-12-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录