HTTPS connectez-vous avec urllib2
J'ai actuellement un petit script qui télécharge une page web et des extraits de certaines données, je suis intéressé. Rien de fantaisie.
Actuellement, je suis le téléchargement de la page comme ceci:
import commands
command = 'wget --output-document=- --quiet --http-user=USER --http-password=PASSWORD https://www.example.ca/page.aspx'
status, text = commands.getstatusoutput(command)
Bien que cela fonctionne parfaitement, j'ai pensé qu'il ferait sens pour supprimer la dépendance à l'égard de wget. J'ai pensé qu'il doit être facile à convertir le ci-dessus pour urllib2, mais jusqu'à présent je n'ai eu zéro succès. L'Internet est plein urllib2 exemples, mais je n'ai rien trouvé qui corresponde à mon besoin pour un simple nom d'utilisateur et le mot de passe de l'authentification HTTP avec un serveur HTTPS.
OriginalL'auteur Parker Coates | 2009-06-25
Vous devez vous connecter pour publier un commentaire.
La les demandes module fournit une moderne API HTTP/HTTPS capacités.
OriginalL'auteur Weston
cette dit, il doit être simple
Si vous utilisez l'Authentification HTTP de Base, vous devez définir les différentes gestionnaire, comme décrit ici.
Citant l'exemple:
Si vous ne Digest, vous devrez définir des en-têtes supplémentaires, mais ils sont les mêmes indépendamment de l'utilisation de SSL. Google pour python+urllib2+http+digérer.
Acclamations,
Désolé, je ne suis pas de la partie authentification. Je vais mettre à jour ma réponse en une seconde.
Oho, oh. On dirait que vous aurez à faire un travail supplémentaire dans urllib2: docs.python.org/howto/urllib2.html Fondamentalement, urllib2 ne l'authentification de base aussi via les en-têtes. Désolé.
J'ai essayé avec les deux HTTPBasicAuthHandler et HTTPDigestAuthHandler, mais c'est encore de me donner erreurs 401.
Dans le serveur permet à des non-accès authentifié, la seule façon de s'authentifier avec urllib2 est de construire l'en-tête manuellement: stackoverflow.com/questions/2407126/...
OriginalL'auteur Boldewyn
La urllib2 documentation a un exemple d'utilisation de l'Authentification de Base:
http://docs.python.org/library/urllib2.html#examples
Utiliser le urllib2.HTTPPasswordMgrWithDefaultRealm, il n'a pas besoin de connaître le domaine. Le domaine est, autant que j'ai compris, juste une manière de le serveur pour fournir un (lisible) pour le nom de domaine pour se connecter. Cheers,
OriginalL'auteur Corey Goldberg