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 :

Petit problème sur un xpath


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Par défaut Petit problème sur un xpath
    Bonjour tout le monde! J'ai appris ici même hier l'existence de xpath et je m'entraines un peu desus cependant la ca ne marche pas et j'ai essayez (beaucoup) de chose et ca n'a pas l'air de vouloir fonctionner je me demandais si vous n arriveriez pas a voir ou est mon erreur

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    $store = array();
     
    foreach($response3 as $search)
    {
        $query = http_build_query(array('q' => $search, 'p' => 'qkey'));
        $url = "http://www.alexa.com/search?$query";
     
        libxml_use_internal_errors(true);
     
        $doc = new DOMDocument();
        $doc->loadHTMLFile($url);
     
        libxml_clear_errors();
     
        $xpath = new DOMXPath($doc);
        $items = $xpath->query('//p[@class="qindex"]');
     
        foreach($items as $item)
        {
            $var = str_replace(html_entity_decode(' ', null, 'utf-8'), '', trim($item->lastChild->nodeValue));
            sscanf($var, '%D', $store[$search][]);
        }
    }
     
    //jusque la ca fonctionnes mon store est bien un tableau associatif avec en [0] et [1] les données que je veux
     
     
    foreach($store as $search => $result)
    {
        $q=urlencode($search);
        $search_url="http://www.google.com/search?q=$q&hl=fr&tbo=1&tbs=ww:1";
     
     
     
        libxml_use_internal_errors(true);
     
        $doc = new DOMDocument();
        $doc->loadHTMLFile($url);
     
        libxml_clear_errors();
     
        $xpath = new DOMXPath($doc);
        $items = $xpath->query('//*[@id="resultStats"]');
      //  $store[$search][3]= $item;
     
       foreach($items as $item)
        {
     
             $text = filter_var($item->nodeValue, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
            sscanf($text, '%D', $store[$search][]);
        }
    }
     
    //cette partie du dessus ne fonctionne pas du tout j ai essayez plein de chose avec / sans for each etc bref j ai rien dans le  [3] je pense que ca viens du trim mon soucis
     
     
     
    //google api
    foreach($store as $search => $result)
      {
     
     
    $value2=urlencode($search);
     
    $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=$value2&hl=fr";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_REFERER, "http://www.blog.neptis.info/page_referer.php");
    $body = curl_exec($ch);
    curl_close($ch);
    $json = json_decode($body);
    $store[$search][4] = $json-> responseData-> cursor-> estimatedResultCount;
     
      }
    //cette partie fonctionne bien , c est l équivalent en utilisant l api que propose google mais malheuresement les résultats sont trèèèèèèèsss loin de la réalité

    J'ai bien séparé le code en trois partie (2 qui marchent une qui marche pas c'est indiqué dans les commentaires)

    Merci d'avance !
    Cordialement,
    Lomithrani

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    ta pas pris la dernière version de mon code,
    et tu n'utilises pas l'API de google la ...

    si tu veux te faire la main sur xpath, test sur un page web/xml que tu crées toi même en local

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Par défaut
    alors pour choper les xpath j ai trouver un truc sur firebug qui aide pas mal :p

    sinon ta version avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      $text = filter_var($item->nodeValue, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
            sscanf($text, '%D', $store[$search][]);
    fonctionne pas chez moi alors que l autre oui donc j ai garder l autre :p

    sinon la je ne fais pas appel a l api ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=$value2&hl=fr";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_REFERER, "http://www.blog.neptis.info/page_referer.php");
    $body = curl_exec($ch);
    curl_close($ch);
    $json = json_decode($body);
    $store[$search][4] = $json-> responseData-> cursor-> estimatedResultCount;

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    non c'est pas l'API ca,
    l'API search c'est la : http://code.google.com/intl/fr/more/#google-search

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    non c'est pas l'API ca,
    l'API search c'est la : http://code.google.com/intl/fr/more/#google-search
    Merci , malheuresement 100 queries ca me suffira jamais. Tu veux bien m aiguiller sur mon xpath ? , j'aimerais bien trouvé mon erreur!

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Lomithrani Voir le message
    Merci , malheuresement 100 queries ca me suffira jamais. Tu veux bien m aiguiller sur mon xpath ? , j'aimerais bien trouvé mon erreur!
    y'a pas de limitation avec en AJAX
    tu dois utiliser cette API comme tout les site qui en propose une, si il y'a trop de trafique "clandestin" vers ton site, tu risque d’être blacklist par les différents sites

Discussions similaires

  1. Aide pour petit problème sur bouton
    Par jeanfly dans le forum Flash
    Réponses: 3
    Dernier message: 14/05/2007, 17h25
  2. petit problème sur les listes chaînées
    Par poche dans le forum C
    Réponses: 14
    Dernier message: 19/03/2007, 17h53
  3. petit problème sur une drawgrid
    Par florette dans le forum Delphi
    Réponses: 2
    Dernier message: 26/05/2006, 10h41
  4. [débutant]petit problème sur formulaire avec onglets
    Par Christophe93250 dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2006, 11h46
  5. [jointure] Petit problème sur le type de jointure...
    Par SteelBox dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/02/2004, 19h55

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