2009-09-21 10 views
3

Depuis Python, je souhaite récupérer du contenu d'un site Web via HTTPS avec authentification de base. J'ai besoin du contenu sur le disque. Je suis sur un intranet, faisant confiance au serveur HTTPS. La plate-forme est Python 2.6.2 sous Windows.Client Python HTTPS avec authentification de base via proxy

J'ai joué avec urllib2, mais je n'ai pas réussi jusqu'à maintenant.

J'ai une solution en cours d'exécution, appelant wget via os.system():

wget_cmd = r'\path\to\wget.exe -q -e "https_proxy = http://fqdn.to.proxy:port" --no-check-certificate --http-user="username" --http-password="password" -O path\to\output https://fqdn.to.site/content' 

Je voudrais vous débarrasser de la os.system(). Est-ce possible en Python?

Répondre

3

Essayez cette (notez que vous devrez remplir dans le domaine de votre serveur également):

import urllib2 
authinfo = urllib2.HTTPBasicAuthHandler() 
authinfo.add_password(realm='Fill In Realm Here', 
         uri='https://fqdn.to.site/content', 
         user='username', 
         passwd='password') 
proxy_support = urllib2.ProxyHandler({"https" : "http://fqdn.to.proxy:port"}) 
opener = urllib2.build_opener(proxy_support, authinfo) 
fp = opener.open("https://fqdn.to.site/content") 
open(r"path\to\output", "wb").write(fp.read()) 
Questions connexes