2013-01-12 5 views
-2

Possible en double:
How to “log in” to a website using Python’s Requests module?Comment se connecter à un site Web avec python

Je programmation d'une application en Python 3.2.3, et je ne sais pas comment vous connecter à un site Web. Je dois me connecter ... et enregistrer les cookies (je pense), mais tout ce que j'ai essayé ne fonctionne pas. J'ai essayé Requests, mais pas de chance. Ma page Web fonctionne sur localhost (c'est un simple formulaire de connexion).

FORM: 
    <form method="post" action=""> 
      <input type="text" name="uname" placeholder="Uporabnisko ime:"/> 
      <input type="password" name="password" placeholder="Geslo:"/> 
      <input type="submit" value="Send"/> 
    </form> 

Python:

import requests 
payload = {'uname': 'name', 'password': 'pswd123'} 
r = requests.post('http://localhost/python', data=payload) 

Ce ne rien faire. Comment poster un nom et un nom d'utilisateur .. Merci pour votre réponse.

+1

Pouvez-vous sur les erreurs que vous faites face? Puisque vous exécutez le site Web sur localhost, je suggère de trouver un moyen d'obtenir des informations de débogage à partir du serveur. – TimD

+0

Si je me connecte, mon script SQL enregistrera dans la base de données quelque chose .. et là je vois, mon script python ne fonctionne pas pour la connexion. Si je mets mon site sur internet c'est pareil. Donc je pense que ce n'est pas un problème sur localhost. Je ne comprends pas très bien ce dictionnaire, est-ce que l'ID de clé à partir du formulaire HTML est correct? Et .. quel est le résultat de requests.post()? Comment regarder si je suis connecté avec succès? – What

Répondre

3

à dire les demandes de python pour « retenir les cookies dans une session de connexion », utilisez requests.session:

import requests 
session = requests.session 
payload = {'uname': 'name', 'password': 'pswd123'} 
r = session.post('http://localhost/python', data=payload) 
r = session.get('http://localhost/authenticated/resource') 
# ^^^^^^^ 
+0

Comment regarder si je suis connecté avec succès et ma session est enregistrée? – What

+0

vous pouvez examiner la valeur de retour de 'session.post' comme vous le feriez pour n'importe quelle autre requête pour voir le statut ou le contenu de la réponse, ou si vous avez été redirigé de manière inattendue. – SingleNegationElimination

+0

Je me suis connecté avec succès .. mais alors ma session est partie .. Je peux obtenir le code source connecté, mais si je fais quelque chose alors ma session est partie. – What

Questions connexes