Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème Authentification / parcourir

Sujet résolu
10 février 2011 à 20:28:39

Bonjour les Zér0s !

J'ai un petit soucis en python,
J'essaie de coder un programme, qui se connecte à un site et qui exécute une action qui nécéssite la connexion (par mdp/login).

Citation : Moi


url = 'http://www.monsite.com/index.php?connec=1'
param = {'pseudo' : 'Sebay00', 'passe' : 'monMotDePasse',
'connexion' : '1', 's' : '', 'id_news' : '' }
data = urllib.urlencode(param)
request = urllib2.Request(url,data)
opener = urllib2.build_opener()
f = opener.open(request)
page = f.read(2000000);



Avec ce code là, quand j'affiche page, je vois bien la page qui est affiché quand on se connecte.

En faites, je ne sais pas comment rester connecter !
Puisqu'après je n'arrive pas à faire des actions de personnes connectées !

Donc par exemple, sur mon site j'ai une carte ou je peux me déplacer en fonction d'un axe X et Y.

Je fais quelque chose comme ça :

Citation : Moi


conn = get_connexion()
p = 'page=carte&case_x=1&case_y=1'
conn.request("GET","/index.php",p,h)
response = conn.getresponse(); print 'kill says ', response.status, response.reason




Je passe en paramètre le header h.

J'ai choisi l'action de se déplacer sur une carte afin que la bonne exécution de mon script soit visible en allant sur le site à la main. Mais évidemment je n'observe aucun déplacement.

Je pense que mon problème vient d'un mauvais header.
J'ai récupéré un Header à l'aide d'un Proxy.
Mais le Heander m'a l'air bizarre (Il y a des Set-Cookie etc.)



Je sais que je mets tout un peu en vraque, j'en suis navré et je remercie d'avance de votre aide.


Cdlt,

Sébastien.

  • Partager sur Facebook
  • Partager sur Twitter
13 février 2011 à 18:45:40

Peut être que le site utilise les cookies de sessions pour t'identifier.
EDIT: tu as dit "Mais le Heander m'a l'air bizarre (Il y a des Set-Cookie etc.)" Donc oui, il y a des cookies, à quoi ressemblent-ils?

Pour prendre en charge les cookies, essaye ceci:

import cookielib, urllib, urllib2, re

# On active le support des cookies pour urllib2
cookiejar = cookielib.CookieJar()
urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))


url = 'http://www.monsite.com/index.php?connec=1'
param = {'pseudo' : 'Sebay00', 'passe' : 'monMotDePasse',
'connexion' : '1', 's' : '', 'id_news' : '' }
data = urllib.urlencode(param)
request = urllib2.Request(url,data)

url = urlOpener.open(request)  # Notre cookiejar reçoit automatiquement les cookies
page = url.read(500000)


Je n'ai pas utilisé ceci depuis longtemps, mais je pense que c'est une piste pour résoudre ton problème.
Bon courage
  • Partager sur Facebook
  • Partager sur Twitter
14 février 2011 à 14:27:04

J'ai réussi.

En faites je prenais le Header envoyé au Serveur.
Alors qu'il faut prendre le Header réponse du Serveur ;)

Merci de votre aide
  • Partager sur Facebook
  • Partager sur Twitter
5 mai 2011 à 16:17:58

Un petit up'

J'ai essayé les Cookies. Et j'arrive à afficher la page connexion avec. Par contre je n'arrive pas à parcourir le site. C'est à dire rester connecter. Dès que j'essaie de lancer une autre page, la page d'accueil de Départ revient.

  • Partager sur Facebook
  • Partager sur Twitter
5 mai 2011 à 21:31:47

Bonsoir,

Si tu utilises toujours l'opener renvoyé par urllib2.build_opener ça devrait fonctionner en principe.

J'utilises également ce système pour récupérer périodiquement les derniers messages postés sur un forum et les poster sur le chan IRC du site.
Suivant le site il faudra surveiller l'expériation du cookie, mais souvent les sites proposent une option "toujours connecté" donc faut voir comment elle se transmet par HTTP.

Tu as du code à nous montrer ?

  • Partager sur Facebook
  • Partager sur Twitter