Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 13/07/2013, à 15:41

kikadisa

[curl] Formulaire en deux étapes

Bonjour,

Je souhaite facilité la complémentation d'un script avec curl.

Depuis deux jours je planche.

Voici le comportement du script :
Sur une page A on rempli le formulaire, et on valide
Nous arrivons sur une page qui demande de valider à nouveau afin de vérifier les données insérés.

Avec Curl, la première partie est réalisé à l'aide de la commande suivante

curl -F "data=valeur" -F "data=valeur" -F "data=@file"

Cependant je ne sais pas comment valider le second formulaire.
Une idée ?

voici la page en question :
http://www.crossroads.fr/forms/Adressez … CV_f1.html

Hors ligne

#2 Le 13/07/2013, à 16:28

nesthib

Re : [curl] Formulaire en deux étapes

Envoie le premier formulaire, regarde le code de la page qui est générée et en particulier le formulaire.
Tu devrais pouvoir t'en sortir en n'envoyant que le second. S'il y a quelques sécurités, il est possible que tu aies à ajouter un entête pour la page de référence (referer).

Par curiosité, pourquoi faire un script pour répondre au formulaire de ce site ? Ça ne me paraît pas être le genre de site pour lequel tu as besoin de faire des soumissions en masse…


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

#3 Le 13/07/2013, à 18:06

kikadisa

Re : [curl] Formulaire en deux étapes

nesthib a écrit :

Envoie le premier formulaire, regarde le code de la page qui est générée et en particulier le formulaire.
Tu devrais pouvoir t'en sortir en n'envoyant que le second. S'il y a quelques sécurités, il est possible que tu aies à ajouter un entête pour la page de référence (referer).

Effectivement le formulaire change sur la deuxième page.
Cependant, des variables ne sont créer seulement parce que l'upload de fichiers à eu lieu.

nesthib a écrit :

Par curiosité, pourquoi faire un script pour répondre au formulaire de ce site ? Ça ne me paraît pas être le genre de site pour lequel tu as besoin de faire des soumissions en masse…

Le but n'est pas l'envoi de masse.
Mais l'automatisation avec cron.

Hors ligne

#4 Le 13/07/2013, à 18:40

nesthib

Re : [curl] Formulaire en deux étapes

Dans ce cas il te faut envoyer deux formulaires.
Pour faire ce genre de choses j'utiliserais python plutôt que le shell (ex. avec le module mechanize).


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

#5 Le 13/07/2013, à 18:42

kikadisa

Re : [curl] Formulaire en deux étapes

Zut, je connais pas le python....

Hors ligne

#6 Le 13/07/2013, à 19:08

nesthib

Re : [curl] Formulaire en deux étapes

Ça n'est pas impossible avec curl, il faut juste faire la première requête, récupérer la page, faire la seconde requête smile


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

#7 Le 14/07/2013, à 00:34

kikadisa

Re : [curl] Formulaire en deux étapes

J'ai bien essayé, ca ne veut pas.

J'ai essayé avec une première commande :

curl -c cookies -F "argument=valeur" url 

suivi de

curl -b cookies -e url -F "argument=valeur" url

Mais le résultat de la seconde page est vierge...

Hors ligne

#8 Le 14/07/2013, à 01:35

nesthib

Re : [curl] Formulaire en deux étapes

Est-ce que tu récupères les données de la première page ? Il ne suffit pas des cookies pour que la seconde comprenne ce qui s'est passé avant.
Je t'avoue que je n'ai pas regardé le code de ta page (et que je n'ai pas spécialement envie de le faire), mais ça me paraît être un problème assez facile à résoudre.
Il faut bien que tu penses à enregistrer la sortie du premier curl pour récupérer le formulaire renvoyé. C'est pour ça que je t'ai orienté vers python au départ, tu peux faire tout ça plus ou moins automatiquement sans avoir à t'embêter à parser la sortie à la main.

Pour récupérer la sortie du premier curl :

page=$(curl …)

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

Haut de page ↑