Requests报错requests.exceptions.SSLError: HTTPSConnectionPool(host=‘www.baidu.com‘, port=443)

学习requests的时候,使用get方法向服务器提交请求,发现报错

Requests报错requests.exceptions.SSLError: HTTPSConnectionPool(host=‘www.baidu.com‘, port=443)_第1张图片get的网址测试了下,http协议不会报错,https协议一定报错,网上百度了下

第一个解决方案是在请求里面添加 verify=False,最终虽然没有了SSLError报错,但是又产生了新报错

Requests报错requests.exceptions.SSLError: HTTPSConnectionPool(host=‘www.baidu.com‘, port=443)_第2张图片Requests报错requests.exceptions.SSLError: HTTPSConnectionPool(host=‘www.baidu.com‘, port=443)_第3张图片

 继续百度,找到了另一种解决方案:

在代码上添加

session = requests.Session() 
session.trust_env = False 
response = session.get('http://ff2.pw') 

使用后终于奏效了,不过有个警告 

InsecureRequestWarning: Unverified HTTPS request is being made to host 'www.baidu.com'. Adding certificate verification is strongly advised. 

使用

requests.packages.urllib3.disable_warnings()

 可以忽略警告。

虽然最终成功了,但是还是没明白,为什么教程和视频里面就能正常request.get就能请求到页面,但是我必须使用session.get来请求Requests报错requests.exceptions.SSLError: HTTPSConnectionPool(host=‘www.baidu.com‘, port=443)_第4张图片

 

你可能感兴趣的:(python)