133 votes

Comment se "connecter" à un site web en utilisant le module Requests de Python ?

J'essaie d'envoyer une demande de connexion à un site Web en utilisant le module Requests de Python, mais cela ne fonctionne pas vraiment. Je suis novice en la matière... et je n'arrive pas à savoir si je dois créer des cookies pour mon nom d'utilisateur et mon mot de passe ou si je dois utiliser une sorte d'autorisation HTTP que j'ai trouvée ( ??).

from pyquery import PyQuery
import requests

url = 'http://www.locationary.com/home/index2.jsp'

Donc maintenant, je pense que je dois utiliser "post" et cookies.....

ck = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'}

r = requests.post(url, cookies=ck)

content = r.text

q = PyQuery(content)

title = q("title").text()

print title

J'ai l'impression que je fais mal le truc des cookies... je ne sais pas.

S'il ne se connecte pas correctement, le titre de la page d'accueil devrait être "Locationary.com" et si c'est le cas, il devrait être "Home Page".

Si vous pouviez m'expliquer quelques notions sur les requêtes et les cookies et m'aider à résoudre ce problème, je vous en serais très reconnaissant. :D

Gracias.

...ça n'a pas encore vraiment fonctionné. Ok... voici ce que dit le HTML de la page d'accueil avant de se connecter :

</td><td><img src="http://www.locationary.com/img/LocationaryImgs/icons/txt_email.gif">    </td>
<td><input class="Data_Entry_Field_Login" type="text" name="inUserName" id="inUserName"  size="25"></td>
<td><img src="http://www.locationary.com/img/LocationaryImgs/icons/txt_password.gif"> </td>
<td><input  class="Data_Entry_Field_Login"  type="password" name="inUserPass"     id="inUserPass"></td>

Je crois que je fais bien les choses, mais le résultat est toujours "Locationary.com".

2ème EDITION :

Je veux pouvoir rester connecté pendant une longue période et, chaque fois que je demande une page sous ce domaine, je veux que le contenu s'affiche comme si j'étais connecté.

3voto

LoMaPh Points 287

Certaines pages peuvent nécessiter plus qu'un login/pass. Il peut même y avoir des champs cachés. Le moyen le plus fiable est d'utiliser l'outil d'inspection et de regarder l'onglet réseau pendant la connexion, pour voir quelles données sont transmises.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X