一、场景复现

InsecureRequestWarning: Unverified HTTPS request is being made to host 'ibbb.me'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  • 1.

Python | requests 模块忽略 SSL 证书验证警告_SSL

二、解决方法

1. 禁用不安全请求警告

可以通过禁用 InsecureRequestWarning 来忽略 SSL 证书验证警告。这在 requests 模块中是可能的,下面是一个示例:

import requests
import urllib3

# 禁用 InsecureRequestWarning
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

response = requests.get('https://127.0.0.1', verify=False)
print(response.text)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

2. 创建一个会话并全局禁用警告

可以创建一个 requests 会话对象,并在该会话中全局禁用 SSL 证书验证警告:

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

# 禁用 InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

# 创建一个会话对象
session = requests.Session()
session.verify = False

response = session.get('https://127.0.0.1')
print(response.text)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

3. 使用上下文管理器

如果只想在某个特定的代码块中禁用 SSL 证书验证警告,可以使用上下文管理器来实现:

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

# 禁用 InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

with requests.Session() as session:
    response = session.get('https://127.0.0.1', verify=False)
    print(response.text)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

以上几种方法都能有效地在使用 requests 模块时忽略 SSL 证书验证警告。

请注意,在生产环境中,不建议忽略 SSL 证书验证警告,因为这可能会降低通信的安全性。