Python3:Requests模块的异常值处理
Python3:Requests模块的异常值处理
用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)
官方异常处理文档:http://www.python-requests.org/en/master/_modules/requests/exceptions/
Python3:Requests模块的异常值处理的更多相关文章
- python3: requests模块的使用;
requests库常用于http请求,可以很方便对网页进行爬取: 主要方法(七个): 方法 解释 requests.request() 构造一个请求,支持以下各种方法 requests.get() 获 ...
- python3 requests模块
一.Requests用法: 1.发送请求: 1).请求类型:req_obj = requests.get("https://www.baidu.com")requests支持多种请 ...
- python3:requests模块-写了一点
使用requests,它的七个主要方法,在这里只讲两个:get.post >>> import requests >>> r=requests.get(" ...
- python3 requests模块 基本操作
import requests import json # 1.HTTP方法 requests.get('https://github.com/timeline.json') #GET请求 reque ...
- python3 requests 模块 json参数和data参数区别
json 表示使用application/json方式提交请求 data 使用application/form-urlencode方式提交请求
- [实战演练]python3使用requests模块爬取页面内容
本文摘要: 1.安装pip 2.安装requests模块 3.安装beautifulsoup4 4.requests模块浅析 + 发送请求 + 传递URL参数 + 响应内容 + 获取网页编码 + 获取 ...
- python3使用requests模块完成get/post/代理/自定义header/自定义Cookie
一.背景说明 http请求的难易对一门语言来说是很重要的而且是越来越重要,但对于python一是urllib一些写法不太符合人的思维习惯文档也相当难看,二是在python2.x和python3.x中写 ...
- (转)Python3之requests模块
原文:https://www.cnblogs.com/wang-yc/p/5623711.html Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另 ...
- Python3之requests模块
Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. 发送G ...
随机推荐
- Spring学习笔记--声明一个简单的Bean
spring依赖的maven dependencyhttp://mvnrepository.com/artifact/org.springframework 在pom.xml中添加如下依赖: < ...
- vs删除空行 —— 正则表达式以及其他
\r:return 到当前行的最左边. \n: newline 向下移动一行,并不移动左右. 1. ^\s*\n 查找空行 2. ^\s*(?=\r?$)\n 查找空行即 ...
- Uni2D —— 入门(全)
Uni2D 入门 Uni2D 入门 -- Atlas Uni2D 入门 -- Animation Clip 和 Animation API Uni2D 入门 -- Skeletal Animation ...
- MQTT协议笔记之订阅
前言 记忆不太好的时候,只能翻看以前的文章/笔记重新温习一遍,但找不到MQTT协议有关订阅部分的描述,好不容易从Evernote中找到贴出来,这样整个MQTT协议笔记,就比较齐全了. SUBSCRIB ...
- JZOJ.5331【NOIP2017模拟8.23】壕游戏
Description
- WEB安全第三篇--控制请求的艺术:CSRF和SSRF
零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ...
- intellij IDEA 报 非法字符 \65279 原因及解决方法
用eclipse创建的项目导入到 intellij IDEA 之后 编译时包 非法字符 '\65279' 该问题产生的原因是 IDEA对以UTF8编码的文件保存时自动加上了BOM(UTF-8文件签名) ...
- windows 下,go语言 交叉编译
http://bbs.csdn.net/topics/390601048 参考上面的操作
- Linux定时对日志批量打包Shell脚本及定时任务crontab 详细用法
一.需求背景 因此次项目的生产环境中部署了多套系统,每天会产生大量的日志(数百GB的量),侵占了服务器宝贵的存储资源空间.为了有效缓解服务器存储压力,考虑通过Linux的Shell脚本结合cr ...
- Linux系统下Nginx+PHP 环境安装配置
一.编译安装Nginx 官网:http://wiki.nginx.org/Install 下载:http://nginx.org/en/download.html # tar -zvxf nginx- ...