前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫之urllib.error模块

爬虫之urllib.error模块

作者头像
人生不如戏
发布2018-05-30 15:00:30
6240
发布2018-05-30 15:00:30
举报
文章被收录于专栏:抠抠空间抠抠空间

error模块简介

我们在爬虫的时候发请求的时候难免出现错误,如访问不到服务器或者访问被禁止等等,

出错了之后urllib将错误信息封装成了一个模块对象中,这个模块就叫error模块

error的分类

分为URLError和HTTPError。

URLError是OSError的一个子类

有以下错误的时候错误信息就会被封装在URLError里:

  1. 无网络
  2. 有网络但是由于种种原因导致服务器连接失败

而如果能够连接服务器但是服务器返回了错误代码如404,403等等(400以上),那么催无信息就会被封装在HTTPError里

URLError与HttpError的区别和关系

区别:

  • URLError封装的错误信息一般是由网络引起的,包括url错误
  • HTTPError封装的错误信息一般是服务器返回了错误状态码

关系:

  • URLError是OSERROR的子类,HTTPError是URLError的子类

使用方法

error类是在捕获错误信息的时候使用,而且一般我们也需要进行捕获,因为你很难确定访问请求一定不会出现错误

代码语言:javascript
复制
from urllib import request
from urllib import error

url = 'http://baiduuuu.com'

try:
    res = request.Request(url)
    response = request.urlopen(res)

    print(response.read().decode())

except error.HTTPError as he:
    print(he)
    # print(he.reason)

except error.URLError as ue:
    print(ue)
    # print(ue.reason)

except Exception as e:
    print(e)

注意:由于HTTPError是URLError的子类,所以捕获的时候HTTPError要放在URLError的上面

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • error模块简介
  • error的分类
  • URLError与HttpError的区别和关系
  • 使用方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档