urllib HTTPS 请求:<urlopen 错误未知 url 类型:https> [英] urllib HTTPS request: <urlopen error unknown url type: https>
问题描述
我在 python3.4 上有一个脚本,它一直很好,直到我下载文件的网站决定使用 https,现在我收到错误,但不知道如何检索文件.
I have a script on python3.4 and it has been fine until the website I download the file from decides to use https and now I am getting error but can't figure out how I can retrive the file.
我的脚本导入以下库并使用 urlretrive 之前获取文件.由于它现在通过 302 重定向转发到 https.我遇到了一些错误.
My script import the following library and uses the urlretrive to get the file previously. Since it is now forwarded to https with 302 redirection. I am getting some error.
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 安装或操作系统已损坏.
Most likely your Python installation or operating system is broken.
Python 仅在编译时支持 HTTPS 时才支持 HTTPS.但是,这应该是所有正常安装的默认设置.
Python has only support for HTTPS if it was compiled with HTTPS support. However, this should be the default for all sane installations.
HTTPS support is only available if the socket module was compiled with SSL support.
https://docs.python.org/3/library/http.客户端.html
请说明您是如何安装 Python 的.官方 Python 发行版可在 python.org 获得
Please clarify how you installed Python. Official Python distributions are available at python.org
这篇关于urllib HTTPS 请求:<urlopen 错误未知 url 类型:https>的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!