IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comment en curl récupérer les résultats d'une recherche via formulaire en "method post" ?


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Novembre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment en curl récupérer les résultats d'une recherche via formulaire en "method post" ?
    Bonjour,
    je travail sur un projet de site WEB qui consiste à parser différents site afin de rendre les recherches des utilisateur mal et non-voyants plus accessible sur une même interface. Je suis actuellement bloqué sur la récupération de données via un formulaire en "method post" sur le site www.paroles.net.
    Pour cela, j'utilise curl mais je n'arrive à rien. Pouvez-vous s'il vous plaît me donner un coup de main ?
    Merci d'avance pour votre aide.
    Voici le code que je triture dans tous les sens sans succès :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // recherche de chanson sur le site <a href="http://www.paroles.net" target="_blank">www.paroles.net</a> 
    $headers = array();
    $headers[] = 'Accept: application/json, text/javascript, */*; q=0.01'; 
    $headers[] = 'Accept-Language: en-US,en;q=0.5';
    //$headers[] = 'Content-Length:'.strlen($post);
    $headers[] = 'Content-Type: application/x-www-form-urlencoded; charset=utf-8';
    $headers[] = 'X-Requested-With: XMLHttpRequest';
     
    $data_string = json_encode($data);
     
    // mot recherché qui sera passé en post  via un formulaire pour les utilisateurs.
     $data = array('search'=>'goldman');
    //traitement
    $ch = curl_init('http://www.paroles.net');
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch,CURLOPT_HEADER,0);
    $result = curl_exec($ch);
    curl_close($ch);
    //affichage des résultats
    echo $result;

  2. #2
    Membre actif
    Homme Profil pro
    Sysadmin Linux
    Inscrit en
    Mars 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Sysadmin Linux

    Informations forums :
    Inscription : Mars 2017
    Messages : 76
    Points : 200
    Points
    200
    Par défaut
    Ton comporte plusieurs erreur, exemple d'un code qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
     
    //Artiste
    $artist = "jean-jacques-goldman";
     
    //Music
    $music = "paroles-la-vie-par-procuration";
     
    //CURL
    $ch = curl_init();
    //Set a fake useragent
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
    //Set parameters in the URL
    curl_setopt($ch, CURLOPT_URL, "http://www.paroles.net/$artist/$music");
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_HTTPGET, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $result = curl_exec($ch);
     
    echo $result;
    curl_close($ch);
    ?>
    Si tu souhaites absolument POST data, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
     
    //Artiste
    $artist = "jean-jacques-goldman";
     
     
    //CURL
    $ch = curl_init();
    //Set a fake useragent
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
    //Set parameters in the URL
    curl_setopt($ch, CURLOPT_URL, "http://www.paroles.net/search");
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_HTTPGET, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch CURLOPT_POSTFIELDS, 'search='.$artist.'');
    $result = curl_exec($ch);
     
    echo $result;
    curl_close($ch);
    ?>

Discussions similaires

  1. Comment récupérer les résultats d'une requete SQL?
    Par verbal34 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 13/02/2008, 10h17
  2. Réponses: 2
    Dernier message: 23/01/2008, 09h36
  3. récupérer les résultats d'une requete hql
    Par aymen007 dans le forum Hibernate
    Réponses: 5
    Dernier message: 23/08/2007, 18h19
  4. [SQL] Comment je peux mettre les résultat d'une requete dans un fichier
    Par Maria1505 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 10/12/2006, 22h44
  5. Réponses: 2
    Dernier message: 31/01/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo