2015-02-06 77 views
4

我在python3.4上有一个脚本,它一直很好,直到我下载文件的网站决定使用https,现在我得到错误,但可以'弄清楚我如何才能检索文件。urllib HTTPS请求:<urlopen错误未知的url类型:https>

我的脚本导入以下库并使用urlretrive先前获取文件。由于它现在被转发到https重定向302。我收到一些错误。

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> 
+0

[urllib HTTPS请求:](https://stackoverflow.com/q/283​​76506/608639),[urllib无法读取https]( https://stackoverflow.com/q/27208131/608639),[urllib.error.URLError:](https://stackoverflow.com/q/27115803/608639),[ urllib HTTPS请求:](https://stackoverflow.com/q/44750732/608639)等。 – jww 2018-02-08 11:37:10

回答

12

最有可能你的Python安装或操作系统坏了。

如果使用HTTPS支持编译,Python仅支持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

+4

非常感谢Mikko。我没有openssl编译python。我安装了openssl-devel,然后重新编译python,现在它再次运行。 – 2015-02-09 19:10:55

+0

没问题。如果它解决了你的问题,请不要忘记标记答案是正确的:) – 2015-02-10 07:59:54