使用python爬虫的时候,遇到requests库出现异常情况要怎么处理?如果你是爬虫新手,那么,就来看看黑洞代理给你整理的教程吧。
1、Requests异常情况
在进行网络访问时,经常会遇到各种错误的情况发生,Requests库的主要异常情况如下:
requests.URLRequired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.Connection 网络连接错误异常,如DNS查询失败、拒绝连接等
requests.Timeout 请求URL超时,产生超时异常
requests.HTTPError HTTP错误异常
requests.ConnectTimeout 连接远程服务器超时异常
在Requests库中所有Requests显式抛出的异常都继承自 requests.exceptions.RequestException 。
2、Requests异常处理
当我们无论是get/post请求后赋值给response变量,response返回所有内容或者抛出异常,同时在response对象还提供一个方法——
response.raise_for_status(),其作用是当访问网页后的HTTP状态码不是200时,产生requests.HTTPError。基于此,就不用判断很多种状态码不为200情况了,在大批量爬取网页内容时,只要出现HTTPError异常,直接记录或者跳过,爬完所有数据后在进行处理。
3、异常处理小例子
在这里举几个例子,构造几个url链接,分别模拟错误地址、连接远程服务器超时等2种异常情况。
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 16 23:08:21 2019
@author: www.lizenghai.com
"""
import requests
urls = ['http://www.lizenghai.com',
'http://www.lizenghai.com/404',
'http://www.lizenghai.comXX/']
for i,u in enumerate(urls):
print(u)
timeout = 3
if i ==0:
# 这里只对第一个url(正确的url)进行超时测试
# 在千分之一秒内肯定无法完成连接的,所以会报超时的错误。
timeout = 0.001
try:
response = requests.get(u, timeout=timeout)
response.raise_for_status() # 检查http状态码是否为200
except requests.ConnectTimeout:
print('超时!')
except requests.HTTPError:
print('http状态码非200')
except Exception as e:
print('未进行容错处理的情况:', e)
执行上述例子,将返回如下结果:
http://www.lizenghai.com
超时!
http://www.lizenghai.com/404
http状态码非200
http://www.lizenghai.comXX/
未进行容错处理的情况: HTTPConnectionPool(host=’www.lizenghai.comxx’, port=80): Max retries exceeded with url: / (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x00000000096FB5F8>: Failed to establish a new connection: [Errno 11004] getaddrinfo failed’))
在上面,黑洞代理给大家介绍了request库可能会出现的错误类型,以及解决方式,希望能够在各位用户使用的时候派上帮助。
相关文章内容简介
1 Python爬虫request库出现问题如何解决?
使用python爬虫的时候,遇到requests库出现异常情况要怎么处理?如果你是爬虫新手,那么,就来看看黑洞代理给你整理的教程吧。 1、Requests异常情况 在进行网络访问时,经常会遇到各种错误的情况发生,Requests库的主要异常情况如下: requests.URLRequired∵URL缺失异常 requests.TooManyRedirects∵超过最大重定向次数,产生重定向异常 requests.Connectio... [阅读全文]
最新标签
推荐阅读
31
2019-10
Urllib库怎么使用?
用pyhton来进行爬虫是很多爬虫工作者的选择,大数据在各行各业都发挥着作用,企业也对数据分析给予更多的关注,黑洞代理今天给大家介绍Urllib库的使用。
31
2019-10
网络爬虫为什么会出现乱码?
代理IP让爬虫变得更加方便,降低了准入门槛,让很多人也开始学习如何编写爬虫程序。在爬虫的时候,会出现很多情况,黑洞代理跟大家分享当你的爬虫出现乱码如何解决。
31
2019-10
爬虫要怎么设计运行?
互联网时代,网络爬虫是常规操作了,比较常见的就有像搜索引擎蜘蛛,它通过每天抓取不同网站的信息,当用户进行搜索的时候,才能够进行返回有效信息。黑洞代理下面为大家介绍爬虫要怎
07
2019-11
正向代理、反向代理的对比
代理服务器可以分为正向代理、反向代理,使用的时候,大家可能感受不出来具体有什么不同。但是这两种其实存在不少差异,使用场景也不一样。
热门文章
在线咨询
客户经理
公众号
关注公众号,免费领试用
大客户