Python Requests 访问SSl证书无效的网址
如果URL的SSl证书是无效的,那么在使用 requests
请求该URL时会抛出SSLError异常。一定要访问的话,设置 verify
参数为 False
如果网站没有设置SSl证书,或SSl证书过期,或SSL证书不被CA机构认可,在浏览器访问网站时都有可能出现访问不安全的提示
以崔庆才的这个 https://ssr2.scrape.center/ 网站为例,打开时是下面这样的:
如果使用 requests 请求这类网站:
1 | import requests |
运行结果如下:
1 | requests.exceptions.SSLError: HTTPSConnectionPool(host='ssr2.scrape.center', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1129)'))) |
终端抛出了 SSLError
异常
如果想要访问,可以加上 verify
参数:
1 | import requests |
运行结果如下:
1 | InsecureRequestWarning: Unverified HTTPS request is being made to host 'ssr2.scrape.center'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings |
请求成功了,但又出现了一些警告,不过我们可以屏蔽它:
1 | import requests |
运行结果如下:
1 | 200 |