环境 python 3.12
业务 python 通过requests监控网站返回状态status_code。
因业务监控需要,想了解网站状态,一般能访问,返回状态码就是200,遇到一个网站,证书完整,但是报错SSLError。
报错类型如下:
Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)')))
于是尝试使用
response = requests.get(url, verify=False)
但是依然不好使。这个验证False适用于哪些证书过期或者证书有问题的网站。
于是查询发现可能网站有限制,我的目的就是要获取网站是否可以访问,现在是浏览器能够直接访问,request访问报错,找到的解决办法如下:
使用curl_cffi 模块,没有的同学自己安装下pip install curl_cffi
from curl_cffi import requests as cffi_requests
response = cffi_requests.get(url)
print(f"状态码: {response.status_code}")
这样status_code就是正常的200了。
小伙伴们可以尝试一下。