请求重试,如果SSLError错误,则验证=false

2024-05-23 17:53:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Requests刮取网页,并在几个实例中遇到了网站SSL证书的问题。我想实现一个逻辑,而第一个请求是用verify=true完成的,但是如果有SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED],那么它会用verify=false重试

这是我的初始代码,我正在努力捕捉错误并将其传递给retry函数

#MAKE FIRST REQUEST
r = requests_retry_session().get(url,  headers=headers, timeout=10)
#RETRY FUNCTION
def requests_retry_session(
        retries=5,
        backoff_factor= 10,
        status_forcelist=(500, 502, 504),
        session=None,
):
    session = session or requests.Session()
    retry = Retry(
        total=retries,
        read=retries,
        connect=retries,
        backoff_factor=backoff_factor,
        status_forcelist=status_forcelist,
    )
    adapter = HTTPAdapter(max_retries=retry)
    session.mount('http://', adapter)
    session.mount('https://', adapter)
#IF SSLERROR set verify to false
    session.verify = False
    return session

Tags: falsessladaptersessionstatusrequestsheadersverify