PySe-016-Requests 访问 HTTPS 网站报错解决方法:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

在使用 requests 访问htts请求:https:www.baidu.com 时,报错信息如下:

 

请求代码如下所示:

# encoding:utf-8

import requests

def baidu():
    r = requests.get('https://www.baidu.com')
    
    print(r.request.headers)
    print('\n\n')
    print(r.headers)
    print('\n\n')
    print(r.text)
    
if __name__ == '__main__':
    baidu()

 

SSL证书认证

requests是支持SSL证书认证的,同各个浏览器一样,requests的SSL认证默认是开启的。requests在请求时,若SSL证书验证失败,则会抛出SSLError。

可在requests请求时,通过 verify=False 参数关闭SSL认证,修改后的代码如下所示:

# encoding:utf-8

import requests

def baidu():
    r = requests.get('https://www.baidu.com', verify=False)
    
    print(r.request.headers)
    print('\n\n')
    print(r.headers)
    print('\n\n')
    print(r.text)
    
if __name__ == '__main__':
    baidu()

 

修改后,再次请求,即可成功请求。如下所示。

 

 

posted @ 2021-03-01 21:57  范丰平  Views(1623)  Comments(0Edit  收藏  举报