"首先,这个报错是告诉你,你的证书有问题.
其次,出现这个问题的原因,在于Python本身.
问题原因
Python升级到2.7.9以后,引入了一个新特性.
当使用urllib打开https的链接时,会检验一次ssl证书.
而当目标网站使用的是自签名证书时,就会抛出urllib2.URLError的错误.
·
所以在爬取https协议的网站或伪装请求头都会导致这个错误
.
***
解决方案
方案一 全局取消证书验证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
方案二 创建未验证的上下文,在url中传入上下文参数
import ssl
# 创建未验证的上下文
context = ssl._create_unverified_context()
# 在url中传入上下文参数
response = urllib.request.urlopen(url, context=context)
"
原文地址:https://www.cnblogs.com/zyk01/p/11376423.html
时间: 2024-10-08 17:12:00