Authentification Python avec urllib2
-
06-07-2019 - |
Question
J'essaie donc de télécharger un fichier à partir d'un site appelé vsearch.cisco.com avec python
[python]
#Connects to the Cisco Server and Downloads files at the URL specified
import urllib2
#Define Useful Variables
url = 'http://vsearch.cisco.com'
username = 'xxxxxxxx'
password = 'xxxxxxxx'
realm = 'CEC'
# Begin Making connection
# Create a Handler -- Also could be where the error lies
handler = urllib2.HTTPDigestAuthHandler()
handler.add_password(realm,url,username,password)
# Create an Opener
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
try:
urllib2.urlopen(url)
print f.read()
except urllib2.HTTPError, e:
print e.code
print e.header
[/ python]
Mon erreur est ValueError: AbstractDigestAuthHandler ne sait rien de la base
J'ai essayé d'utiliser des gestionnaires d'autorisation HTML de base et même des gestionnaires HTTPS. Rien ne me donne accès. Cette erreur est différente de toutes les autres erreurs cependant. Les autres erreurs sont simplement 401 erreurs HTML
Des suggestions sur la manière de procéder?
Pas de solution correcte
Autres conseils
Un " gestionnaire de mots de passe " pourrait aider:
mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
mgr.add_password(None, url, user, password)
urllib2.build_opener(urllib2.HTTPBasicAuthHandler(mgr),
urllib2.HTTPDigestAuthHandler(mgr))
Pour ce que j’ai essayé lors de mes tests ( http://devel.almad.net/trac/django-http-digest/browser/djangohttpdigest/tests/test_simple_digest.py ), l'erreur est probablement dans votre URL - Pour que cela fonctionne, j'ai http: // partie incluse, pas seulement l'hôte.