Automatiser un CURL pour formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Automatiser un CURL pour formulaire

Re: Automatiser un CURL pour formulaire

par josse34 » 08 avr. 2014, 11:30

Pas cool comme réponse pour mon centième message, tu exagère !!!! :lol:

Pourtant, nombre de logiciels permettent une aspiration similaire, http://www.ebsoft.net/ ou http://www.pageraptor.com/ pour ne citer qu'eux!
Je n'ai pas trouvé d'API, mais je pense que depuis 2007, ce genre d'extraction se fait régulièrement.

Comment faire pour contourner JSF, c'est un cookie de session?

Merci!

Re: Automatiser un CURL pour formulaire

par moogli » 08 avr. 2014, 09:59

salut,

c'est du java avec le framework JSF.

le truc c'est que la vue possède un "état" qui est lié à l'affichage, donc lorsque tu envoie directement les données dans l'url il y aune erreur parce que la page n'est pas initialisée comme elle le devrait.

as tu simplement regardé si ce site propose une "api" pour faire les requête correctement plutôt qu'en "pirate" ?

après une recherche rapide (page blanche api) je suis tombé la dessus, donnant un extrait des conditions d'utilisation du service page jaune / blanche.

fait en sort d'éviter les ennuis au cas où ;)

@+

Automatiser un CURL pour formulaire

par josse34 » 07 avr. 2014, 17:57

Bonjour à tous (notamment Moogli et XTG ;-) )

Pour mon centième message (on gagne quelque-chose?!), je cherche à automatiser mes requêtes sur les pages blanches, à savoir récupérer le nom & prénom lorsqu'on à l'adresse postale.
Par exemple sur http://www.pagesjaunes.fr/pagesblanches si vous indiquez "5 rue de la chartrie 91720 maisse" dans 'où?', vous obtenez en premiere réponse le nom + prénom de ce pauvre cobaye !

Je ne maîtrise pas bien les soumissions sur ces fichiers .do et .jsf mais me base habituellement sur cet excellent topic : http://www.seoblackout.com/2008/02/13/s ... ormulaire/

Bref je n'y parviens pas en CURL dont en voici l'ébauche :
<?php

  $postfields = array();
  $postfields["searchFormPBexpressTop"] = "searchFormPBexpressTop";
  $postfields["iehack"] = "%E2%98%A0";
  $postfields["ouSaisi"] = "";
  $postfields["ouNbCar"] = "0";     
  $postfields["j_idt2"] = "true";
  $postfields["typeFormulaire"] = "formExpress";
  $postfields["nom"] = "";           
  $postfields["proximite"] = "off";
  $postfields["prenom"] = ""; 
  $postfields["ou"] = "5+rue+de+la+chartrie+91720+maisse";
  $postfields["btnValidSearch"] = "";  
  $postfields["javax.faces.ViewState"] = "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";    
  
  //$url = "http://www.pagesjaunes.fr/pagesblanches/RecherchePagesBlanchesExpress.do";
  $url = "http://www.pagesjaunes.fr/pagesblanches/commun/form/formulaireBiChamps.jsf";

  $useragent = "Mozilla/5.0";
  $referer = $url; 
   
  //Initialise une session CURL
  $ch = curl_init($url);
  //CURL options
  curl_setopt($ch, CURLOPT_POST, 1);
  //On poste les données du tableau $postfields
  curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
  //On définit un useragent ici Mozilla/5.0
  //souvent les bots se font passés pour googlebot ce qui finalement est stupide
  //On passe donc un useragent banal
  curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  //On passe un referrer ici on passe la même page $url
  curl_setopt($ch, CURLOPT_REFERER, $referer);
  //on récupère le contenu de la page de résultat de la soumission dans une chaine
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  // en cas de redirection (facultatif ici)
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  //Page de résultats et fermeture de session
  $result = curl_exec($ch);
  curl_close($ch);
   
  //on peut faire un echo du résultat obtenu
  echo $result;
  //print_r($result);

?>
A savoir que l’extension webdeveloper pour Firefox m'indique un GET transformé comme ceci qui fonctionne après une première requête manuelle réussie : http://www.pagesjaunes.fr/pagesblanches ... KLg%2BI%9B

Grand merci !!!!!

Bye