美文网首页Python
爬虫时报错“SSL: CERTIFICATE_VERIFY_FA

爬虫时报错“SSL: CERTIFICATE_VERIFY_FA

作者: 程序里的小仙女 | 来源:发表于2020-11-13 09:53 被阅读0次
    1. 使用pip安装第三方库时报CERTIFICATE_VERIFY_FAILED证书错误问题

    出现此类问题是因为被国内防护墙所限制,修改镜像源即可解决:
    如果使用 pip install xxxx -i http://pypi.douban.com/simple/ 无法下载还是出错的话使用下面的一个
    例如:pip install requests -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com


    1. 产生这个问题的原因在于python本身,pyhon升级到2.7.9以后,引入了一个新特性,当使用urllib打开https的链接时,会检验一次ssl证书。而当目标网站使用的是自签名证书时,就会抛出urllib2.URLError的错误。(这里虚拟机就是用的自带的签名证书,所以我们从服务器连接vmware时会出现这种错误)。
      那么解决方案如下三种方式:

    2.0 首先升级下requests库:

    pip install --upgrade requests
    

    然后将verify 设置为 False,Requests 将忽略对 SSL 证书的验证

    import requests
    url='https://www.duitang.com/napi/blog/list/by_search/?kw=%E6%A0%A1%E8%8A%B1&start=0&limit=1000' 
    page=requests.get(url,verify=False)
    

    具体见官方文档:SSL证书验证
    2.1.全局取消证书验证(当项目对安全性问题不太重视时,推荐使用,可以全局取消证书的验证,简易方便)

    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
    

    2.2.使用ssl创建未验证的上下文,在url中传入上下文参数(当项目整体非常重视安全问题时,推荐这种方式,可以局部取消证书验证)

    import ssl
    context = ssl._create_unverified_context()
    # 将context传入url函数的context参数中,比如
    urllib2.urlopen('目标网址',context=context).read()
    

    这样就解决了ssl:certificate_verify_failed这个问题,成功运行脚本

    1. 移除验证后
      requests库提示警告:InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
      InsecureRequestWarning)
      虽然不影响程序运行,但是看着很不爽!
      第二天还是 update requests 库之后就不报错了,我也很奇怪啊!
      第一天的实际自己的解决方案:
    import ssl
    ssl._create_default_https_context=ssl._create_unverified_context
    from urllib3.exceptions import InsecureRequestWarning
    requests.urllib3.disable_warnings(InsecureRequestWarning)
    

    就不会报错了,
    网上这个已经过时:

    from requests.packages.urllib3.exceptions import InsecureRequestWarning
    # 禁用安全请求警告
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    

    相关文章

      网友评论

        本文标题:爬虫时报错“SSL: CERTIFICATE_VERIFY_FA

        本文链接:https://www.haomeiwen.com/subject/focvbktx.html