更新时间:2023-09-28 来源:黑马程序员 浏览量:
大多数网站中都加人了SSL证书,以实现数据信息在浏览器和服务器之间的加密传输,保证双方传递信息的安全性。SSL证书是一种数字证书,类似于驾驶证、护照和营业执照的电子副本,由受信任的数字证书颁发机构CA在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
当使用Requests 调用请求函数发送请求时,由于请求函数的verify参数的默认值为True.所以每次请求网站默认都会进行SSL证书的验证。不过,有些网站可能没有购买SSL证书,或者SSL证书失效。程序访问这类网站时会因为找不到SSL证书而抛出SSLError异常。例如,使用Requests请求国家数据网站,具体代码如下。
import requests base url = 'https://data.stats.gov.cn/' header = { 'User-Agent': 'Mozilla/5.0 (Nindows NT 6.1; Win64; x64' 'AppleWebKit/537.36 (KHTML, like Gecko)' 'Chrome/90.0.4430.212 Safar1/537.36') # 发送GET请求 response = requests.get (base_url, headers=header) print (response.status_code)运行代码,程序抛出SSLError异常,具体内容如下。
...... requests.exceptions.SSLError: HTTPSConnectionPool (host='data.stats.gov.cn', port= 443): Max retries exceeded with url: / (Caused by SSLError(SSLCert Verification Error(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1108)')))
这时需要主动关闭SSL验证,即在调用getO函数时将verify参数设置为False,代码如下。
C:\Users\admin\AppData\Roaming\Python\Python38\site-packages\ur11ib3\ connectionpool.py:981: InsecureRequestNarning: Unverified HTTPS request is being made to host 'data.stata.gov.cn'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage. htmltssl-warnings
这时,如果不希望收到警告信息,则可以采用如下方式消除警告信息。
import urllib3 urllib3.disable warnings()
再次运行程序,发现控制台中不再输出上面的警告信息。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19