Czy w sieci Python 2.6.1 jest obsługiwane proxy za pośrednictwem protokołu HTTPS?Czy program urllib2 w Pythonie 2.6.1 obsługuje proxy za pośrednictwem protokołu https
Znalazłem następujące w http://www.voidspace.org.uk/python/articles/urllib2.shtml:
NOTE
Currently urllib2 does not support fetching of https locations through a proxy. This can be a problem.
próbuję zautomatyzować logowanie się do strony internetowej i pobieranie dokumentów, mam prawidłową nazwę użytkownika/hasło.
proxy_info = {
'host':"axxx", # commented out the real data
'port':"1234" # commented out the real data
}
proxy_handler = urllib2.ProxyHandler(
{"http" : "http://%(host)s:%(port)s" % proxy_info})
opener = urllib2.build_opener(proxy_handler,
urllib2.HTTPHandler(debuglevel=1),urllib2.HTTPCookieProcessor())
urllib2.install_opener(opener)
fullurl = 'https://correct.url.to.login.page.com/user=a&pswd=b' # example
req1 = urllib2.Request(url=fullurl, headers=headers)
response = urllib2.urlopen(req1)
miałem to działa na podobnych stronach, ale nie przy użyciu protokołu HTTPS i podejrzewam, że nie dostać przez pełnomocnika - to po prostu utknie w taki sam sposób, jak wtedy, gdy nie określił proxy. Muszę wyjść przez proxy.
Potrzebuję uwierzytelnienia, ale nie używając podstawowego uwierzytelnienia, urllib2 wykombinuje uwierzytelnianie podczas przechodzenia przez stronę https (dostarczam nazwę użytkownika/hasło do strony za pośrednictwem url)?
EDIT: Nie, ja testowałem z
proxies = {
"http" : "http://%(host)s:%(port)s" % proxy_info,
"https" : "https://%(host)s:%(port)s" % proxy_info
}
proxy_handler = urllib2.ProxyHandler(proxies)
i dostaję błąd:
urllib2.URLError: urlopen error [Errno 8] _ssl.c:480: EOF occurred in violation of protocol
Aaa, got it :) niech mi spróbować (btw mam zorientowali się, co było mi potrzebne z dyni, ale wciąż byłoby miło mieć to działa w Pythonie) – stefanB
Niestety dodanie pełnomocnika jako „https” klucz w dict przechodzisz do ProxyHandler nie rozwiąże problemu jako AFAIK nie ma wsparcia dla metody CONNECT HTTP. Korzystanie z PyCurl jest najłatwiejszym rozwiązaniem, ale dla dystrybucji kodu brak obsługi Windows w PyCurl (lub przynajmniej łatwość instalacji) może być dużym utrudnieniem. – Tom