logo Homepage
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [python] connection avec validation de formulaires javascripts  (Lu 6421 fois)
eduine

Profil challenge

Classement : 831/54278

Néophyte
*
Hors ligne Hors ligne
Messages: 19

I think U just lost the game...


Voir le profil
« le: 11 Juillet 2013 à 10:27:28 »

Bonjour bonjour!

Alors voilà, j'ai un petit projet à mener a bien au boulot, il faut que je me connecte au petit serveur embarqué du fax afin de mettre en place une petite journalisation des fax envoyés.

Je veux faire ça en python, j'ai déjà quelques lignes de codes pour m'orienter vers la page d'accueil, et là (misère), la validation du formulaire se fait via JavaScript... J'ai pas mal fouillé sur le net, j'ai vu quelques trucs inintéressants, mais rien qui ne vaille le détour.

Donc j'ai installé LiveHTTPHeaders, et j'ai sniffé les requêtes http, et j'ai donc :

Code:
#request# POST http://la_page_de_mon_fax/login
POST /login uri=%2Frps%2F&user_type_generic=&deptid=mon_login&password=mon_password

Seulement, je ne fais que très peu de développement web (si l'on peut appeler ça ainsi), et donc je n'ai strictement aucune idée de comment retranscrire ce genre de requêtes en python. Pour l'instant mon code ressemble à ça :
Code:
import urllib2

url = "http://la_page_de_mon_fax/rts/"

## declaration des mes identifiants
login = "mon_login"
password = "mon_password"


request = urllib2.Request(url)
response = urllib2.urlopen(request).read()

#affichage de la page web récupérée (juste pour vérif)
print response



Donc voilà si quelqu'un sait comment recréer une requête POST, et pourrais m'expliquer à quoi correspond ce 'uri=..." je lui en serais reconnaissant!

Je continue bien entendu à chercher de mon côté!

Ciao!
« Dernière édition: 11 Juillet 2013 à 10:30:12 par eduine » Journalisée
Asteriksme
Modérateur Global

Profil challenge

Classement : 37/54278

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 785

.


Voir le profil WWW
« #1 le: 11 Juillet 2013 à 11:47:42 »

Salut,
j'ai jamais vraiment utilisé python mais j'ai trouvé ça sur le ouaib (ici: http://www.voidspace.org.uk/python/articles/urllib2_francais.shtml)

Code: (python)
import urllib
import urllib2

the_url = 'http://www.someserver.com/cgi-bin/register.cgi'
values = {'name' : 'Michael Foord',
          'location' : 'Northampton',
          'language' : 'Python' }

data = urllib.urlencode(values)
req = urllib2.Request(the_url, data)
handle = urllib2.urlopen(req)
the_page = handle.read()

À mon avis t'as plus qu'à remplacer "name" par "uri" (avec la valeur associée), etc pour les autres variables, ça devrait marcher je pense.
Au besoin, tu peux aussi rajouter des headers:

Code: (python)
[...]
headers = { 'User-Agent' : user_agent, 'Cookies' : cookies }
req = urllib2.Request(the_url, data, headers)
[...]

En ce qui concerne l'URI, c'est l'Uniform Resource Identifier, tu peux trouver plein d'infos sur wikipedia (https://fr.wikipedia.org/wiki/Uniform_Resource_Identifier), mais en l'occurence il est juste utilisé comme une variable post, puis traité après par la page login mais ça on sait pas comment.
« Dernière édition: 11 Juillet 2013 à 11:50:24 par Asteriksme » Journalisée

"It's a funny thing about some mathematicians. We often don't care if the results have applications because the results are themselves so pretty."
eduine

Profil challenge

Classement : 831/54278

Néophyte
*
Hors ligne Hors ligne
Messages: 19

I think U just lost the game...


Voir le profil
« #2 le: 11 Juillet 2013 à 12:35:45 »

Yep, je suis tombé dessus aussi, j'ai fait quelques tests ce matin, mais ca marche pas comme je veux... Enfin bref, je pousse un peu plus mes recherches, je vais jeter un œil sur le wiki uri, et je vais voir ce que je peux faire..

Sinon pour mes vérifs, est ce que tu sais si ya moyen que je voie les requêtes qu'engendre mon script facilement (pour vérifier que la requête POST s'effectue comme il faut) ou est ce que je vais devoir choper un soft fait pour (genre WireShark) ?


EDIT : Je viens de m’apercevoir qu'il y a une redirection après la validation du formulaire, j'me penche sur la question.
« Dernière édition: 11 Juillet 2013 à 12:47:31 par eduine » Journalisée
r3fffal
Profil challenge

Classement : 2944/54278

Néophyte
*
Hors ligne Hors ligne
Messages: 6


Voir le profil
« #3 le: 11 Juillet 2013 à 13:26:49 »

regarde la librairie requests pour python, elle est vraiment simple d'utilisation et plutôt bien documenter
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: