python requests已解决Max retries exceeded with URL问题

错误信息

Traceback (most recent call last):
  File "D:/1.py", line 47, in 
    response = requests.get(
  File "D:\Python3.8.10\lib\site-packages\requests\api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
  File "D:\Python3.8.10\lib\site-packages\requests\api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "D:\Python3.8.10\lib\site-packages\requests\sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
  File "D:\Python3.8.10\lib\site-packages\requests\sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
  File "D:\Python3.8.10\lib\site-packages\requests\adapters.py", line 517, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='XXXX', port=XXX): Max retries exceeded with url: XXXX(Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))

对Max retries exceeded with URL问题,我们可以采取以下几种解决方法:

检查网络连接

首先,确保你的网络连接正常。尝试使用其他设备或网络连接访问相同的URL。如果访问正常,则问题可能出在你的网络连接上。

import requests

# 检查网络连接
try:
    requests.get('https://www.google.com')
except requests.exceptions.ConnectionError:
    print("网络连接异常!")

http连接太多没有关闭导致的,解决方法

import requests
requests.adapters.DEFAULT_RETRIES = 5 # 增加重连次数
s = requests.session()
s.keep_alive = False # 关闭多余连接
s.get(url) # 你需要的网址

访问次数频繁,被禁止访问,解决方法:使用代理

import requests

# 设置代理服务器
proxies = {
    "http": "http://127.0.0.1:8888",
    "https": "http://127.0.0.1:8888"
}

# 发送请求时使用代理服务器
response = requests.get("http://example.com", proxies=proxies)

调整请求头

检查请求参数:我们需要仔细检查和调整请求参数,确保其正确性。特别是在设置请求头、请求体、超时时间等参数时,要确保其与实际需求相符。

import requests

# 设置请求头
headers = {
    "User-Agent": "Mozilla/5.0"
}

# 设置超时时间为5秒
timeout = 5

# 发送请求时使用请求头和超时时间
response = requests.get("http://example.com", headers=headers, timeout=timeout)

增加重试次数

你可以通过修改Requests库的重试策略来增加重试次数。在发送请求时,你可以使用以下代码来设置重试次数:

import requests

# 创建一个具有自定义重试次数的会话
session = requests.Session()
session.mount('http://', requests.adapters.HTTPAdapter(max_retries=10))

# 发送请求
response = session.get('https://example.com')

作者:高质量海王哦

物联沃分享整理
物联沃-IOTWORD物联网 » python requests已解决Max retries exceeded with URL问题

发表回复