So behandeln Sie die HTTPS -Anforderung mit (urllib2 + ssl) durch einen HTTP -ProxyPython

Python-Programme
Anonymous
 So behandeln Sie die HTTPS -Anforderung mit (urllib2 + ssl) durch einen HTTP -Proxy

Post by Anonymous »

Ich versuche, eine Proxy -Verbindung mit Urllib2.ProxyHandler zu testen. Es gibt jedoch wahrscheinlich eine Situation, in der ich eine HTTPS -Website anfordern werde (z.

Code: Select all

Urllib2.urlopen()
wirft Fehler auf, wenn eine HTTPS -Site anfordert. Also habe ich versucht, eine Helferfunktion zu verwenden, um die Urlopen -Methode neu zu schreiben. < /P>
Hier ist die Helferfunktion: < /p>

Code: Select all

def urlopen(url, timeout):
if hasattr(ssl, 'SSLContext'):
SslContext = ssl.create_default_context()
SslContext.check_hostname = False
SslContext.verify_mode = ssl.CERT_NONE
return urllib2.urlopen(url, timeout=timeout, context=SslContext)
else:
return urllib2.urlopen(url, timeout=timeout)
< /code>
Diese Helferfunktion basierend auf Antwort < /p>
Dann verwende ich: < /p>
urllib2.install_opener(
urllib2.build_opener(
urllib2.ProxyHandler({'http': '127.0.0.1:8080'})
)
)
, um den HTTP -Proxy für urllib.opener . http://whatismyip.com ', 30) und es sollte den gesamten Datenverkehr über http proxy übergeben. urlopen () fällt in if HasAttr (SSL, 'SSLContext') ständig, auch wenn es sich um eine HTTP -Site handelt. Darüber hinaus verwendet die HTTPS -Site auch HTTP -Proxy nicht. Dies bewirkt, dass der HTTP -Proxy ungültig wird und der gesamte Datenverkehr diese Antwort auch ausprobiert hat, um HTTP in https urllib2.proxyHandler ({'https': '127.0.0.1:8080 zu ändern:' 127.0.1:8080 '}) Aber es funktioniert immer noch nicht.
Mein Proxy funktioniert. Wenn ich urllib2.urlopen () anstelle der Rewrite -Version urlopen () verwendet, funktioniert es für die HTTP -Site. Anzeige, wenn der urlopen auf einer HTTPS -Site verwendet werden muss.
Wie geht es das? /> update1: < /strong> Ich kann diese Arbeit mit Python 2.7.11 und einiger Server nicht ordnungsgemäß mit Python 2.7.5 bearbeiten. Ich gehe davon aus, dass es sich um eine Python -Version handelt.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post