Python 2.7.x 使用Requests发起https请求时报Warning的问题
warning :如下
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py:852: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning)
看到这个的时候不要担心,只是个Warning不是Error,认真读一下这句话,似乎跟 urllib3 有关系,后面还有个链接地址 https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings 。
首先,我这里使用的是Requests库,requests 库其实是基于 urllib 编写的,对 urllib 进行了封装,使得使用时候的体验好了很多,现在 urllib 已经出到了3版本,功能和性能自然是提升了不少。所以,requests最新版本也是基于最新的 urllib3 进行封装。
所以,上面看的哪个提示其实就是 urllib3 的提示,根据提示给出的链接咱们进去看下写了啥。
在urllib2时代对https的处理非常简单,只需要在请求的时候加上 verify=False 即可,这个参数的意思是忽略https安全证书的验证,也就是不验证证书的可靠性,直接请求,这其实是不安全的,因为证书可以伪造,不验证的话就不能保证数据的真实性。
在urllib3时代,官方强制验证https的安全证书,如果没有通过是不能通过请求的,虽然添加忽略验证的参数,但是依然会 给出醒目的 Warning,这一点没毛病。
解决
咱们在写爬虫的时候一般也不会去在意目标地址的证书是否安全,直接开爬,这里咱们就不希望看到一大堆的错误提示,根据官方给出的解决方法,针对Python 2 的方法很简单
>>> import urllib3
>>> urllib3.disable_warnings()
两行代码就行了,但是这里咱们需要注意,咱们用的是Requests库而不是直接使用的urllib3,所以这里咱们不能直接使用官方给定的方案,稍微谷歌了一下找到了解决方案,这个解决方案是在Requests库的官方github的issues上给出的,地址 https://github.com/requests/requests/issues/2214 ,代码
requests.packages.urllib3.disable_warnings()
转自:http://www.92ez.com/?action=show&id=23443
Python 2.7.x 使用Requests发起https请求时报Warning的问题的更多相关文章
- Python常见问题 - python3 使用requests发送HTTPS请求报certificate verify failed 错误
当你使用 requests 发送HTTPS请求时 requests.get(url, parmas=parmas, headers=header, cookies=cookie) 出现了以下错误 HT ...
- php 使用curl发起https请求
今天一个同事反映,使用curl发起https请求的时候报错:“SSL certificate problem, verify that the CA cert is OK. Details: erro ...
- 老李分享:curl发起https请求
老李分享:curl发起https请求 在POPTEST上课的过程中,我们需要本地模拟https请求来完成性能测试,我们用curl来实现,curl是利用URL语法在命令行方式下工作的开源文件传输工具,使 ...
- http 使用curl发起https请求报错的解决办法
使用curl发起https请求的时候报错:“SSL certificate problem, verify that the CA cert is OK. Details: error:1409008 ...
- 用curl发起https请求
使用curl发起https请求 使用curl如果想发起的https请求正常的话有2种做法: 方法一.设定为不验证证书和host. 在执行curl_exec()之前.设置option $ch = cur ...
- python接口自动化(十二)--https请求(SSL)(详解)
简介 本来最新的requests库V2.13.0是支持https请求的,但是一般写脚本时候,我们会用抓包工具fiddler,这时候会 报:requests.exceptions.SSLError: [ ...
- 使用curl发起https请求
"SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:S ...
- requests发送HTTPS请求(处理SSL证书验证)
1.SSL是什么,为什么发送HTTPS请求时需要证书验证? 1.1 SSL:安全套接字层.是为了解决HTTP协议是明文,避免传输的数据被窃取,篡改,劫持等. 1.2 TSL:Transport Lay ...
- python+pytest接口自动化(4)-requests发送get请求
python中用于请求http接口的有自带的urllib和第三方库requests,但 urllib 写法稍微有点繁琐,所以在进行接口自动化测试过程中,一般使用更为简洁且功能强大的 requests ...
随机推荐
- 【做题】NOWCODER142A Ternary String——数列&欧拉定理
题意:你有一个长度为\(n\),且仅由012构成的字符串.每经过一秒,这个字符串所有1后面会插入一个0,所有2后面会插入一个1,然后会删除第一个元素.求这个字符串需要多少秒变为空串,对\(10^9+7 ...
- js字符串方法、数组方法整理
push 向数组末尾添加一项 返回值为数组的长度: pop 删除数组最后一项: unshift 向数组开头增加一项: shift 删除数组第一项: splice 删除数组中的值:1 splice(n, ...
- 图片处理工具类 util
PathUtil package util; public class PathUtil { private static String seperator = System.getProperty( ...
- (zhuan) Evolution Strategies as a Scalable Alternative to Reinforcement Learning
Evolution Strategies as a Scalable Alternative to Reinforcement Learning this blog from: https://blo ...
- class类的使用
我们在ES5中经常使用方法或者对象去模拟类的使用,虽然可以实现功能,但是代码并不优雅,ES6为我们提供了类的使用.需要注意的是我们在写类的时候和ES5中的对象和构造函数要区分开来,不要学混了. 类的声 ...
- PHP 内置函数fgets读取文件
php fgets()函数从文件指针中读取一行 语法: fgets(file,length) 参数 描述 file 必需.规定尧要读取的文件 length 可选 .规定尧都区的字节数.默认是102字 ...
- React Native的键盘遮挡问题(input/webview里)
2017-06-15 1:使用keyVoaidView来解决 注意要设置behavio=“absolute”,哎.记性差 好像拼错了 2:使用下面的代码,监听键盘,然后将webView拉高就可以了 i ...
- 基于 Python 和 Pandas 的数据分析(7) --- Pickling
上一节我们介绍了几种合并数据的方法. 这一节, 我们将重新开始不动产的例子. 在第四节中我们写了如下代码: import Quandl import pandas as pd fiddy_states ...
- python 安装pip
https://pip.pypa.io/en/stable/installing/
- chrome driver 下载
https://npm.taobao.org/mirrors/chromedriver/ 解压后,把路径放到系统环境变量中即可 dirver = webdriver.Chrome()