Est-ce que urllib2 dans Python 2.6.1 prend en charge le proxy via https?Est-ce que urllib2 dans Python 2.6.1 prend en charge le proxy via https
J'ai trouvé ce qui suit à 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.
Je suis en train d'automatiser la connexion dans le site Web et le téléchargement de documents, je nom d'utilisateur/mot de passe valide.
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)
Je l'ai eu à travailler pour des pages similaires, mais pas en utilisant le protocole HTTPS et je soupçonne qu'il ne soit pas par procuration - il est de coincé dans la même manière que quand je n'ai pas précisé proxy. Je dois sortir par procuration.
Je dois m'authentifier mais ne pas utiliser l'authentification de base, urllib2 deviendra-t-il une authentification lors d'un passage sur le site https (je fournis le nom d'utilisateur/mot de passe au site via url)?
EDIT: Non, j'ai testé avec
proxies = {
"http" : "http://%(host)s:%(port)s" % proxy_info,
"https" : "https://%(host)s:%(port)s" % proxy_info
}
proxy_handler = urllib2.ProxyHandler(proxies)
Et j'obtiens l'erreur:
urllib2.URLError: urlopen error [Errno 8] _ssl.c:480: EOF occurred in violation of protocol
Aaah, got it :) me laisser essayer (BTW je l'ai compris ce que je avais besoin avec boucle, mais serait toujours agréable d'avoir en cours d'exécution en python) – stefanB
Malheureusement ajouter le proxy comme la clé « https » dans le dict que vous passez à ProxyHandler ne résoudra pas le problème car AFAIK il n'y a pas de support pour la méthode HTTP CONNECT. L'utilisation de PyCurl est la solution de contournement la plus simple, mais pour distribuer du code, le manque de support de Windows dans PyCurl (ou du moins la facilité d'installation) peut être un gros obstacle. – Tom