使用python的requests.get()爬取某些网站报错SSL: CERTIFICATE_VERIFY_FAILED

错误:SSL: CERTIFICATE_VERIFY_FAILED

1.问题

python使用requests.get()爬取某些网站时报错:(Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)’)))

2.原因

出现这个问题的原因是你访问的某些网站是没有安全保障的,所以当你在python中使用reqests.get()请求某些网站时,它会检查该网站是否有证书(或是检查该网站是否安全)。如果该网站有证书(使用chrome可以轻松的看见),如:
在这里插入图片描述
那么你使用reqests.get()请求网站时是能验证SSL证书的,那么你的程序就不会报上述错误;
同样的,如果该网站没有证书,那么你使用reqests.get()请求网站时是不能验证SSL证书的,如:
在这里插入图片描述
那么你的程序就会报上述错误。

3.解决

如果你请求的网站有证书(安全),那你就能直接使用requests.get()得到你想要的;
当你请求的网站无证书(不安全),那么你使用requests.get()就会报错。此时你只需要在requests.get()中添加一个参数即可。如:
添加前(代码):

r = requests.get(url, headers=headers)

添加前(运行):
在这里插入图片描述
添加后(代码):

r = requests.get(url, headers=headers,verify=False)

添加后(运行):
在这里插入图片描述
添加后会有警告,但能正常运行。如果此连接对安全没有要求就可以使用上述方法,添加参数verify=False

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值