【问题标题】:How to fix a SSL Certificate error with urllib?如何使用 urllib 修复 SSL 证书错误?
【发布时间】:2019-04-20 20:17:58
【问题描述】:

我正在开发一个 python 程序来从网站上抓取所有图像并将它们下载到一个文件夹中,同时创建一个 csv 文件来存储所有这些信息。我正在使用 urllib 并继续收到有关 ssl 证书失败的错误。我在 Jupyter notebook、Windows 10 和 Python 3.7 上运行。

我尝试 pip 安装 certifi 和 urllib,但这些已经很满意了。我已经尝试重新启动 Jupyter,但这并不能解决问题。我不确定从哪里开始解决这个问题,因为我对 urllib 不是很熟悉。

我希望这会下载图像并输出到 csv 文件,它确实会输出到 csv 文件,但是当我收到此错误时图像不会下载:

错误不会停止程序,但会抑制程序的预期功能。

【问题讨论】:

    标签: python request jupyter urllib


    【解决方案1】:

    如果您使用urllib 库,请在发出打开 URL 的请求时使用上下文参数。这是实现:

    import urllib.request
    
    import ssl
    
    #Ignore SSL certificate errors
    
    ssl_context = ssl.create_default_context()
    
    ssl_context.check_hostname = False
    
    ssl_context.verify_mode = ssl.CERT_NONE
    
    html = urllib.request.urlopen(url, context=ssl_context).read()
    

    【讨论】:

      【解决方案2】:

      如果您能够考虑使用 requests 库而不是 urllib,那么您只需这样做

      import requests
      
      response = requests.get('your_url', verify=False)
      

      但也要考虑警告here

      【讨论】:

        猜你喜欢
        • 2022-06-13
        • 2017-12-11
        • 2019-06-21
        • 2019-07-03
        • 2019-10-27
        • 1970-01-01
        • 1970-01-01
        • 2018-03-12
        • 2012-12-04
        相关资源
        最近更新 更多