在python3中当用urllib.request.urlopen或者urllib.request.urlretrieve打开一个 https 的时候会验证一次 SSL 证书, 当目标使用的是自签名的证书时就会爆出一个
URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)的错误消息;
解决方法一(适用于urlopen函数,因为urlretrieve没有context参数所以不适用):
import ssl
context = ssl._create_unverified_context()
urllib.request.urlopen(url, context=context)
解决方法二(同时适用urlopen和urlretrieve函数):
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
url.request.retrieve(url,file_name)