#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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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
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.
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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne