场景描述
在使用Requests高频率请求一些链接的时候,经常会遇到类似以下的报错,那么遇到这种情况该怎么办呢?
requests.exceptions.SSLError: HTTPSConnectionPool
HTTPConnectionPool(host='tjsj.chinacoal.com', port=80): Max retries exceeded with url: /module/download/downfile.jsp?classid=0&filename=0c473a02bef64bb2a0e10283b7e20956.doc (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000002BCD441B970>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。'))
解决方案
import urllib3
import requests
# 增加重试连接次数
requests.adapters.DEFAULT_RETRIES = 5
s = requests.Session()
# 关闭多余连接
s.keep_alive = False
# 取消验证证书
s.verify = False
# 关闭在设置了verify=False后的错误提示
urllib3.disable_warnings()
# 发起请求
res = s.get(url=url, headers=headers, timeout=300)