Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

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

Compte anonymisé

[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

#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ᴉsdn

Hors ligne

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

Compte anonymisé

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.

#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ᴉsdn

Hors ligne

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

Compte anonymisé

Re : [curl] Formulaire en deux étapes

Zut, je connais pas le python....

#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ᴉsdn

Hors ligne

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

Compte anonymisé

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...

#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ᴉsdn

Hors ligne