Python中Requests模块的异常值处理

2023-11-04

在我们用Python的requests模块进行爬虫时,一个简单高效的模块就是requests模块,利用get()或者post()函数,发送请求。

但是在真正的实际使用过程中,我们可能会遇到网络的各种变化,可能会导致请求过程发生各种未知的错误导致程序中断,这就使我们的程序不能很好的去处理错误。所以为了使我们的程序在请求时遇到错误,可以捕获这种错误,就要用到try…except方法,以及了解requests可能发生的各种错误.

以下是request.exceptions下的各种异常错误:
RequestException:
HTTPError(RequestException)  
UnrewindableBodyError(RequestException)  
RetryError(RequestException)  
ConnectionError(RequestException) ProxyError(ConnectionError)
SSLError(ConnectionError)
ConnectTimeout(ConnectionError, Timeout)
Timeout(RequestException) ReadTimeout
URLRequired(RequestException)  
TooManyRedirects(RequestException)  
MissingSchema(RequestException, ValueError)  
InvalidSchema(RequestException,ValueError)  
InvalidURL(RequestException,ValueError)  
InvalidHeader(RequestException,ValueError)  
ChunkedEncodingError(RequestException)  
StreamConsumedError(RequestException,TypeError)  
ContentDecodingError(RequestException,BaseHTTPError)

在实际应用的过程中,我们可以把请求放在try下,把可能发生的异常用except获取:

while True:     #一直循环,知道访问站点成功
        try:
            #以下except都是用来捕获当requests请求出现异常时,
            # 通过捕获然后等待网络情况的变化,以此来保护程序的不间断运行
            req = requests.get(company_url, headers = headers, timeout = 20)    
            break
        except requests.exceptions.ConnectionError:
            print('ConnectionError -- please wait 3 seconds')
            time.sleep(3)
        except requests.exceptions.ChunkedEncodingError:
            print('ChunkedEncodingError -- please wait 3 seconds')
            time.sleep(3)    
        except:
            print('Unfortunitely -- An Unknow Error Happened, Please wait 3 seconds')
            time.sleep(3)

requests.exceptions的官方文档:
Source code for requests.exceptions

Python 异常处理

  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中Requests模块的异常值处理 的相关文章

随机推荐

  • 【自学指南】Python爬虫的四个水平,你修炼到了哪个层次?

    Python爬虫老生常谈的话题了 像兼职接单 爬取小说电影榜单 商业化的数据收集等 在大数据时代它能用到的地方还是蛮多的 业余玩玩小意思 如果是想要往这方面学精学深 那得下一番功夫了 爬虫能力按层次来分大概也可以分为初级 中级 高级 更高一
  • /proc/modules, /proc/devices, /dev

    http blog csdn net ghostyu article details 8085163 http www cnblogs com wanghetao archive 2012 06 02 2532183 html http b
  • 下载安装Gurobi10.0+如何在jupyterLab中使用(python)

    去年11月 Gurobi发布10 0 版本 将是第一个允许将用户的机器学习模型嵌入到数学规划模型中的商业求解器 在连续问题 整数问题 线性和二次凸问题 二次非凸问题 广义非线性问题等已有领域继续不断提升 以下是平均提升比例 下面主要会整理个
  • 接口自动化用例怎么写?怎样设计?

    一 前言 在开始接口测试之前 我们来想一下 如何进行接口测试的准备工作 或者说 接口测试的流程是什么 有些人就很好奇 接口测试要流程干嘛 不就是拿着接口文档直接利用接口测试工具测试嘛 其实 如果只是三五个接口 你可以这么做一个临时的接口测试
  • 一个完全的新人如何搭建自己的个人网站

    首先 申明下本文所指的新人是指会上网站看网页 会自己聊QQ 会在新浪 网易等平台上写博客的人 当然你要说这个只要会上网的人都会了 是的 我所指的新人就是会上网的人 所以本文的技术含量不会很高 高手可以直接忽略了 下面我们开始进入正题 搭建一
  • SpringBoot+Spring Security+JWT

    SpringBoot Spring Security JWT
  • 【STM32】stm32是什么

    作者 一只大喵咪1201 专栏 STM32学习 格言 你只管努力 剩下的交给时间 STM32的简单介绍 介绍 特点 认识STM32 总结 介绍 STM32是一款单片机 它由意法半导体公司制造 ST是意法半导体的简称 M是指微控制器 也就是单
  • 「react进阶」年终送给react开发者的八条优化建议(篇幅较长,占用20-30分钟)

    笔者是一个 react 重度爱好者 在工作之余 也看了不少的 react 文章 写了很多 react 项目 接下来笔者讨论一下 React 性能优化的主要方向和一些工作中的小技巧 送人玫瑰 手留余香 阅读的朋友可以给笔者点赞 关注一波 公众
  • API hook 原理与Windows hook 应用

    API hook 原理与Windows hook 应用 分类 系统程序 2012 04 14 12 20 3679人阅读 评论 3 收藏 举报 hook api windows attributes descriptor winapi 目录
  • seaborn.heatmap部分参数解释

    今天也是自己用seaborn的heatmap花了一个混淆矩阵 sns heatmap ConfusoinMatrix annot True ax ax cmap Greens 发现他这个对数据倾斜的数据很不友好啊 如果有一个类别的数据超级多
  • SystemC自带example的simple_perf研习

    simple perf SystemC的性能建模示例 也是SystemC中系统级建模的一个入门简介 SystemC自带example的系列 SystemC自带example的pipe研习 SystemC自带example的pkt switc
  • fabric1.0 错误分析总结

    个人在学习 fabric1 0 项目中遇到的 一些 错误和原因总结 如发现错误即时指出 1 ERROR could not find an available non overlapping IPv4 address pool among
  • 用Rancher RKE快速部署高可用k8s集群

    用Rancher部署高可用k8s集群 用Rancher RKE部署高可用k8s集群 1 主机配置 1 1 新建虚拟主机 1 2 主机初始化配置 安装一些必要的安装包 安全设置 ntp时钟同步 内核参数调优 hostname修改 关闭swap
  • 诠释韧性增长,知乎Q3财报里的社区优势和商业化价值

    当内容平台开始做生意 往往意味着它要扮演一个大包大揽的角色 从内容的可持续性到最终变现 设计一套完整的生态系统是必需的 但并非所有平台都对此感到棘手 或者说在某些平台 生态已经不是困难 而是优势和特色 知乎就是从好平台走向好公司的典型例子
  • scrapy中使用css选择器罗列下一级的所有标签

    使用 css dl gt 即为罗列dl标签的下一级所有标签 例子 dt dl a dl dl b dl dl h1 c h1 dl dt 使用 data dt response css dl dt id all child elements
  • Python-Tkinter 图形化界面设计

    摘抄来自Python Tkinter 图形化界面设计 还是自己去看一下比较好 我只是摘抄我用的上的 一 最基本框架 from tkinter import root Tk root title 我的第一个Python窗体 root geom
  • P2524 Uim的情人节礼物·其之弐【康托展开模板题】

    题目链接 我在这里加了树状数组来优化康托展开 但是这道题的数据其实很小 不需要加也是可以的 include
  • 27 类深度学习主要神经网络

    1 感知器 Perceptron P 感知器模型也称为单层神经网络 这个神经网络只包含两层 输入层 输出层 这种类型的神经网络没有隐藏层 它接受输入并计算每个节点的加权 然后 它使用激活函数 大多数是Sigmoid函数 进行分类 应用 分类
  • 49 题目 1431: [蓝桥杯][2014年第五届真题]分糖果

    题目 1431 蓝桥杯 2014年第五届真题 分糖果 时间限制 1Sec 内存限制 128MB 提交 5807 解决 2969 题目描述 问题描述 有n个小朋友围坐成一圈 老师给每个小朋友随机发偶数个糖果 然后进行下面的游戏 每个小朋友都把
  • Python中Requests模块的异常值处理

    在我们用Python的requests模块进行爬虫时 一个简单高效的模块就是requests模块 利用get 或者post 函数 发送请求 但是在真正的实际使用过程中 我们可能会遇到网络的各种变化 可能会导致请求过程发生各种未知的错误导致程