2015-02-06 79 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