【问题标题】:urllib HTTPS request: <urlopen error unknown url type: https>urllib HTTPS 请求:<urlopen 错误未知 url 类型:https>
【发布时间】:2015-04-07 05:29:48
【问题描述】:

我在 python3.4 上有一个脚本,在我下载文件的网站决定使用 https 之前它一直很好,现在我收到错误但不知道如何检索文件。

我的脚本导入以下库并使用 urlretrive 之前获取文件。因为它现在通过 302 重定向转发到 https。我遇到了一些错误。

import urllib
import urllib.request

urllib.request.urlretrieve("http://wordpress.org/latest.tar.gz", "/thefile.gz")

我的错误:-

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/urllib/request.py", line 178, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "/usr/local/lib/python3.4/urllib/request.py", line 153, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/lib/python3.4/urllib/request.py", line 461, in open
    response = meth(req, response)
  File "/usr/local/lib/python3.4/urllib/request.py", line 571, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/local/lib/python3.4/urllib/request.py", line 493, in error
    result = self._call_chain(*args)
  File "/usr/local/lib/python3.4/urllib/request.py", line 433, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python3.4/urllib/request.py", line 676, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "/usr/local/lib/python3.4/urllib/request.py", line 455, in open
    response = self._open(req, data)
  File "/usr/local/lib/python3.4/urllib/request.py", line 478, in _open
    'unknown_open', req)
  File "/usr/local/lib/python3.4/urllib/request.py", line 433, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python3.4/urllib/request.py", line 1257, in unknown_open
    raise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: https>

【问题讨论】:

标签: python python-3.4


【解决方案1】:

很可能您的 Python 安装或操作系统已损坏。

Python 仅在编译时支持 HTTPS 时才支持 HTTPS。但是,这应该是所有正常安装的默认设置。

HTTPS support is only available if the socket module was compiled with SSL support.

https://docs.python.org/3/library/http.client.html

请说明您是如何安装 Python 的。官方 Python 发行版可在 python.org 获得

【讨论】:

  • 我遇到了Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32这个问题
  • 我通过选中(不推荐)选项将所有内容添加到 PATH 中解决了这个问题。见stackoverflow.com/a/54929204/6391429.
【解决方案2】:

我在使用 Anaconda 时遇到了同样的问题,但在安装 OpenSSL 包后,它运行良好。

conda install -c anaconda openssl

【讨论】:

    【解决方案3】:

    我遇到了类似的问题。
    我使用了 anaconda,我只是将这两个文件移动到 anaconda3\DLLs 并且它起作用了。

    • libcrypto-1_1-x64.dll
    • libssl-1_1-x64.dll

    我不知道为什么。
    我知道这一点的原因是我试图使用ssl 模块来忽略证书错误。

    import ssl
    ctx = ssl.create_default_context()
    ctx.check_hostname = False
    ctx.verify_mode = ssl.CERT_NONE
    

    在这些行之后,https 错误消失了,并给了我另一个错误:
    DLL load failed while importing _ssl: The specified module could not be found.

    于是我去this发帖,找到了这两个重要文件。

    ps:ssl 模块不是必需的。

    【讨论】:

      【解决方案4】:

      遇到了这个问题,通过升级 Python 解决了

      brew upgrade python
      

      【讨论】:

      • 可以确认这在这个确切的问题上对我有用。
      【解决方案5】:

      对我来说,通过下载正确版本的 openssl 解决了该错误。

      我在 windows 10 机器上使用 python 3.7.5 32 位版本。

      1. 转到 https://slproweb.com/products/Win32OpenSSL.html 并下载 Win32 OpenSSL v1.1.1h 可执行文件 |微星 54MB 安装程序版本。我使用 32 位,因为我的 python 解释器是 32 位的。

      2. 安装并运行。

      问题已解决:)

      【讨论】:

        【解决方案6】:

        用于 HTTP
        遇到错误的人 ValueError: unknown url type: 'http 要么 ValueError: unknown url type: b'http

        同时使用urllib.request.Request 打开一些如下网址 'http://localhost/simple_form/insert.php'

        只需将localhost 更改为127.0.0.1

        看起来 Request 方法在 url 中寻找 domain.something

        【讨论】:

          【解决方案7】:

          如果您的网址有单引号或双引号,即 '' 或 "",那么它也会出现此错误。 用 %20 替换单引号或双引号 例如 url='http://stackoverflow.com/wizard.php?id="hah"' 它将更改为 url='http://stackoverflow.com/wizard.php?id=%20hah%20'

          【讨论】:

            猜你喜欢
            • 2015-01-22
            • 2019-07-22
            • 1970-01-01
            • 2020-10-15
            • 2012-12-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-09-14
            相关资源
            最近更新 更多