2 votes

Comment se connecter avec python et enregistrer le cookie, puis utiliser cette information pour afficher la page réservée aux membres ?

Je suis assez novice en python et j'essaie d'écrire un script pour me connecter à la page à http://ryushare.com/login.python .

J'ai fait plusieurs tentatives, mais la connexion échoue et je ne sais pas pourquoi. Après la connexion à la page, je souhaite obtenir le retour de http://ryushare.com/file-manager.python

Voici le code que j'essaie de tenter en lisant les exemples des autres.

import urllib, urllib2, cookielib
username = 'myusername'
password = 'mypassword'

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'login' : username, 'password' : password})
opener.open('http://www.ryushare.com/login.python', login_data)
resp = opener.open('http://ryushare.com/file-manager.python')
print resp.read()

J'ai vérifié le code source de la page de connexion, il dit que la valeur du nom d'utilisateur et du mot de passe est "login et password" donc je l'ai changé. J'ai essayé d'autres exemples que l'on peut trouver ici, comme le flux de nouvelles de Google, mais je n'ai pas pu me connecter non plus.

1voto

Dubslow Points 325

Dans la source de la page, nous avons le HTML suivant :

<form method="POST" action="http://ryushare.com/" name="FL">

Vous devriez ouvrir() la page "action", par ex.

opener.open('http://ryushare.com/", login_data)
# Now you can interact with site

http://www.w3schools.com/html/html_forms.asp :

Bouton d'envoi

<input type="submit" /> définit un bouton d'envoi.

Un bouton d'envoi est utilisé pour envoyer les données du formulaire à un serveur. Les données sont envoyées à la page spécifiée dans l'attribut action du formulaire. Le fichier défini dans l'attribut action fait généralement quelque chose avec les entrée reçue :

<form name="input" action="html_form_action.asp" method="get">
Username: <input type="text" name="user" /> <input type="submit"
value="Submit" /> </form>

Comment le code HTML ci-dessus apparaît dans un navigateur :

Nom d'utilisateur : (champ de saisie)

Si vous tapez quelques caractères dans le champ de texte ci-dessus, et cliquez sur le bouton "Submit", le navigateur enverra votre saisie à une page appelée "html_form_action.asp". La page vous montrera les données reçues entrée reçue.

Editer : Autres données du formulaire

Comme on peut le voir dans les commentaires, l'OP avait encore des problèmes après avoir appliqué ce correctif. La réponse est qu'il y a souvent des balises de formulaire cachées, y compris celle du bouton d'envoi. Incluez les données de ces balises dans votre demande, ainsi que votre nom d'utilisateur et votre mot de passe.

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