如何禁用 urlretrieve 的 SSL 验证?
How to disable SSL verification for urlretrieve?
围绕 SO 已经问过几次类似的问题,但解决方案是针对 urlopen
的。该函数采用可选的 context
参数,该参数可以接受预配置的 SSL 上下文。 urlretrieve
没有这个参数。如何绕过以下调用中的 SSL 验证错误?
urllib.request.urlretrieve(
"http://sourceforge.net/projects/libjpeg-turbo/files/1.3.1/libjpeg-turbo-1.3.1.tar.gz/download",
destFolder+"/libjpeg-turbo.tar.gz")
urlretrieve
似乎不可能(在 Python >=2.7.9 或 Python >=3.0 中)。
建议使用 requests
包作为替代品。
编辑添加:上下文参数已添加到代码中,尽管文档中未提及!帽子提示@Sushisource
这个解决方案对我也很有效:在调用库之前,定义默认的 SSL 上下文:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# urllib.request.urlretrieve(...)
来源:http://thomas-cokelaer.info/blog/2016/01/python-certificate-verified-failed/
围绕 SO 已经问过几次类似的问题,但解决方案是针对 urlopen
的。该函数采用可选的 context
参数,该参数可以接受预配置的 SSL 上下文。 urlretrieve
没有这个参数。如何绕过以下调用中的 SSL 验证错误?
urllib.request.urlretrieve(
"http://sourceforge.net/projects/libjpeg-turbo/files/1.3.1/libjpeg-turbo-1.3.1.tar.gz/download",
destFolder+"/libjpeg-turbo.tar.gz")
urlretrieve
似乎不可能(在 Python >=2.7.9 或 Python >=3.0 中)。
建议使用 requests
包作为替代品。
编辑添加:上下文参数已添加到代码中,尽管文档中未提及!帽子提示@Sushisource
这个解决方案对我也很有效:在调用库之前,定义默认的 SSL 上下文:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# urllib.request.urlretrieve(...)
来源:http://thomas-cokelaer.info/blog/2016/01/python-certificate-verified-failed/