有时候,使用如下脚本去访问网页时
s = request.get('https://www.baidu.com')
会报如下错误
requests.exceptions.SSLError: HTTPSConnectionPool(host='passport.cnblogs.com', port=443): Max retries exceeded with url: /user/signin (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:646)'),))
解决方法:
1、调用了urllib3.disable_warnings()函数,来确保不会发生警告
from requests.packages import urllib3 urllib3.disable_warnings()
2、调用logging的captureWarning(True)函数
import logging logging.captureWarnings(True)
3、request可以为https请求SSL证书,但SSL证书默认是开启的,如果证书验证失败,就会报出上述错误,我们可以在get()方法中将verify设置为False,requests将忽略对SSL证书的验证