如何使用urllib修复SSL证书错误?

时间:2019-04-20 20:17:59

标签: python request jupyter urllib

我正在开发一个python程序,以从网站获取所有图像并将其下载到文件夹中,同时创建一个csv文件来存储所有这些信息。我正在使用urllib并继续收到有关ssl证书失败的错误。我在Jupyter笔记本,Windows 10和Python 3.7上运行。

我尝试通过pip安装certifi和urllib,但是已经满意了。我尝试重新启动Jupyter,但这不能解决问题。我不太确定从哪里开始解决此问题,因为我对urllib不太熟悉。

我希望它可以下载图像并输出到csv文件,并且确实输出到csv文件,但是当出现此错误时图像将不会下载:

该错误不会暂停程序,但会阻止程序的预期功能。

2 个答案:

答案 0 :(得分:0)

如果您可以考虑使用requests库而不是urllib,则只需

import requests

response = requests.get('your_url', verify=False)

答案 1 :(得分:0)

如果您使用urllib库,则在请求打开URL时请使用context参数。这是实现:

import urllib.request

import ssl

#Ignore SSL certificate errors

ssl_context = ssl.create_default_context()

ssl_context.check_hostname = False

ssl_context.verify_mode = ssl.CERT_NONE

html = urllib.request.urlopen(url, context=ssl_context).read()