2017-02-12 18 views
0

私がプロキシ経由で接続しようとしているウェブサイトがセキュリティ保護されていない場合(HTTP)、接続できますが、 、私はできません。urllib2(Pythonで)を使用してプロキシ経由でHTTPSに接続する方法

次のコードは動作します:

import urllib2 

proxy_support = urllib2.ProxyHandler({'http':'xxx.xxx.xxx.xx'}) 
opener = urllib2.build_opener(proxy_support) 
urllib2.install_opener(opener) 

html = urllib2.urlopen('http://www.example.com').read() 

以下のコードは動作しません。しかし、

proxy_support = urllib2.ProxyHandler({'https':'xxx.xxx.xxx.xx'}) 
opener = urllib2.build_opener(proxy_support) 
urllib2.install_opener(opener) 

html = urllib2.urlopen('https://www.example.com').read() 

代わりに、私は、次のトレースバックを得る:https://docs.python.org/2/library/urllib2.htmlによると

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 154, in urlopen 
    return opener.open(url, data, timeout) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open 
    response = self._open(req, data) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open 
    '_open', req) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain 
    result = func(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1240, in https_open 
    context=self._context) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1197, in do_open 
    raise URLError(err) 
urllib2.URLError: <urlopen error [Errno 61] Connection refused> 

答えて

0

を:

バージョン2.7.9で変更:cafile、capath、cadefault、およびcontextが追加されました。

この1つは私が自己署名SSL証明書を使用している私の地元のHTTPSサイトへの接続を許可:

html = urllib2.urlopen('http://www.example.com'),\ 
context=ssl._https_verify_certificates(False) 

私はあなたのトレースバックに地雷との類似性に気づきました。私はこの作品かはわからない

File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen 
    return opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 429, in open 
    response = self._open(req, data) 
    File "/usr/lib/python2.7/urllib2.py", line 447, in _open 
    '_open', req) 
    File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 1241, in https_open 
    context=self._context) 
    File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open 
    raise URLError(err) 
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)> 

:コードは、あなたが投稿と同じように、Ubuntuの14.04(Pythonの2.7.6)上ではなく、最後の1への例外を除いて16.04(パイソン2.7.13)で動作しますあなたの最後に。

関連する問題