我有一个代码,可以让我登录到服务器。该代码适用于旧版本的 Urllib3 (1.6),但不适用于最新版本 (2.0.4)。我需要更改什么才能使其在最新版本上运行?
这是我的代码:
import requests
import urllib3
requests.packages.urllib3.disable_warnings()
try:
requests.packages.urllib3.contrib.pyopenssl.util.ssl_ += ':HIGH:!DH:!aNULL'
except AttributeError:
# no pyopenssl support used / needed / available
pass
with requests.Session() as session:
print(dir(session.post))
login = session.post(url="https://xxx.xxx.xxx.xxx/login.jsp", verify=False)
with open(r"path", "w", encoding="utf-8") as file:
file.write(login.text)
您提供的代码似乎混合使用了过时的方法和过时的方法来禁用警告。在最新版本的 requests 和 urllib3 中,您应该使用以下方法禁用 SSL 警告并发出 HTTP 请求:
import requests
# Disable SSL warnings
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)
# Define the session
with requests.Session() as session:
# Make a POST request
login = session.post(url="https://xxx.xxx.xxx.xxx/login.jsp", verify=False)
# Handle the response
with open(r"path", "w", encoding="utf-8") as file:
file.write(login.text)
以下是有关此代码的一些要点:
此代码应适用于最新版本的 requests 和 urllib3。通过运行 pip install --upgrade requests urllib3 确保安装了这两个库的最新版本。