分享交流
合作共赢!

Python 问题解决 | urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

代码示例

from urllib.request import urlopen
import json

json_url = "https://raw.githubusercontent.com/muxuezi/btc/master/btc_close_2017.json"

response = urlopen(json_url)  # 出问题步骤

# 读取数据
req = response.read()
# 将数据写入文件
with open('btc_close_2017_urllib.json', 'wb') as f:
    f.write(req)
# 加载json格式
file_urllib = json.loads(req)
print(file_urllib)

报错内容

下载网络上文件时遇到urllib.error.URLError:证书认证失败

urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1051)>

解决方案

方案1:在调用urlopen() 函数时加入context 参数

import ssl
context = ssl._create_unverified_context()
response = urlopen(json_url, context=context)

from urllib.request import urlopen
import ssl  # 解决步骤1
import json

json_url = "https://raw.githubusercontent.com/muxuezi/btc/master/btc_close_2017.json"

context = ssl._create_unverified_context()  # 解决步骤2

response = urlopen(json_url, context=context)  # 解决步骤3

# 读取数据
req = response.read()
# 将数据写入文件
with open('btc_close_2017_urllib.json', 'wb') as f:
    f.write(req)
# 加载json格式
file_urllib = json.loads(req)
print(file_urllib)

方案2:全局取消证书验证

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

from urllib.request import urlopen
import ssl  # 解决步骤1
import json

json_url = "https://raw.githubusercontent.com/muxuezi/btc/master/btc_close_2017.json"

ssl._create_default_https_context = ssl._create_unverified_context  # 解决步骤2
response = urlopen(json_url)

# 读取数据
req = response.read()
# 将数据写入文件
with open('btc_close_2017_urllib.json', 'wb') as f:
    f.write(req)
# 加载json格式
file_urllib = json.loads(req)
print(file_urllib)
赞(0) 打赏
未经允许不得转载:琼杰笔记 » Python 问题解决 | urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏