前往墨抒颖的网站查看纯净版本
在 anaconda 启动过程中提示如下错误
或者你可以在 python3 中看到类似的错误
错误解析
出现问题的主要原因是 Urllib3 的 1.26.4 版本中存在一个错误.
在 Python 3.4 和 2.7.9 中, SSLContext 上有一个 check_hostname 属性, 它将让 SSLContext 实例处理检查 do_handshake 中的主机名. urllib3 在可能的情况下依靠它而不是自己进行检查会很好. 我认为这与将 SSLContext 用作 TLS 内容的 "bag of configuration" 的其他内容相得益彰. 这可以通过确定 SSLContext 对象是否具有 check_hostname 属性来检测. 有一个缺点, 这依赖于将主机名作为 SSLContext().wrap_socket(server_name=) 的一部分传递. 最初这仅在 OpenSSL 启用了 SNI 时才有效. 但是即使未启用 SNI,Python 3.4.3 和 2.7.9 也会接受 server_name.
解决方案
1. URLLIB3 降低到 1.25.8 以下 urllib3 == 1.25.8
2. 请求方法加验证 = 假参数
response = requests.request('GET', 'http://xxx.xxxx.com', verify=False)
直接运行会报如下警告:
InsecureRequestWarning: 正在发出未经验证的 HTTPS 请求. 强烈建议添加证书验证. 请参阅: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning,
3. 在请求请求前, 添加如下代码, 即可解决以上警告
Urllib3.disable_warnings() 或 Requests.Packages.urllib3.disable_warnings()
4. 关掉代理
来源: https://segmentfault.com/a/1190000040755668