当我试图用urllib库打开一个网站时,我得到了这个错误。我不明白为什么会出现这个错误,目前我使用的是python 3.6版本。是版本的问题吗?
url = 'https://example.com'
html = urllib.request.urlopen(url).read().decode('utf-8')
text = get_text(html)
data = text.split()
print(data)
当你的SSLTLS证书的通用名与你网站的域名不匹配时,就会出现这个错误。试着把你网站的域名改成exampleServer.Com,看看是否有效。 否则,你将不得不写自定义逻辑来忽略名称不匹配的错误。
我已经用这个代码解决了这个问题。
导入ssl
ssl.match_hostname = lambda cert, hostname: True
例如:
import ssl
ssl.match_hostname = lambda cert, hostname: True
url = 'https://example.com'
html = urllib.request.urlopen(url).read().decode('utf-8')
text = get_text(html)
data = text.split()
print(data)