Récuperer les résultats de Google

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics

maximedt
WRInaute discret
WRInaute discret
 
Messages: 172
Inscription: 8 Mai 2008

Récuperer les résultats de Google

Message le Dim Jan 04, 2009 16:28

Bonjour,
Beaucoup de script existe pour récuperer les résultats de Google mais notre IP est bien vite bannie.
Comment font ces outils qui récupèrent 1000 résultats depuis Google pour les analyser et ensuite dire ou est situé notre site...??
Il y a t-il un API ?
J'ai besoin de récuperer les 1000 premiers résultats pour une trentaine de requetes (je peux l'étaler sur plusieurs semaines), mais je ne sais pas du tout comment faire... :?
Merci pour votre réponse.


LiFi
WRInaute impliqué
WRInaute impliqué
 
Messages: 609
Inscription: 14 Juil 2008

Message le Dim Jan 04, 2009 17:13

il y a une API mais je ne sais pas si on peut recuperer tous les resultats, j'en recupere que 8, c'est peut etre parce que je le fais avec l'ajax search api et qu'il doit y en avoir une autre plus puissante : http://code.google.com/apis/ajaxsearch/web.html

maximedt
WRInaute discret
WRInaute discret
 
Messages: 172
Inscription: 8 Mai 2008

Message le Dim Jan 04, 2009 17:24

Le probleme c'est que c'est du javascript et que les url sont irrécupérables automatiquement...


spout
WRInaute accro
WRInaute accro
 
Messages: 4110
Inscription: 14 Mai 2003

Message le Dim Jan 04, 2009 17:31

J'ai donné une soluce qui va peut-être t'aider ici:
http://www.webrankinfo.com/forums/viewtopic_104096.htm


LiFi
WRInaute impliqué
WRInaute impliqué
 
Messages: 609
Inscription: 14 Juil 2008

Message le Dim Jan 04, 2009 17:34

Regarde là, j'ai utilisé PHP pour récupérer les données en JSON :
http://code.google.com/apis/ajaxsearch/ ... e_snippets

Mais je n'ai que 8 résultats quand je demande le maximum, alors si on peut avoir plus merci de me le dire ici, ca serait sympa.
Dernière édition par LiFi le Dim Jan 04, 2009 17:35, édité 1 fois.


spout
WRInaute accro
WRInaute accro
 
Messages: 4110
Inscription: 14 Mai 2003

Message le Dim Jan 04, 2009 17:35

LiFi a écrit:Regarde là, moi j'ai utilisé PHP pour récupérer les données en JSON :
http://code.google.com/apis/ajaxsearch/ ... e_snippets


C'est exactement ça

maximedt
WRInaute discret
WRInaute discret
 
Messages: 172
Inscription: 8 Mai 2008

Message le Dim Jan 04, 2009 18:00

Je peux avoir votre code, parce que je crois que j'ai pas tout saisi au code qu'il donne...
En tout cas je crois que c'est bien et je vous remercie pour la réponse :)


LiFi
WRInaute impliqué
WRInaute impliqué
 
Messages: 609
Inscription: 14 Juil 2008

Message le Dim Jan 04, 2009 18:14

En PHP tu fais ça :
Code: Tout sélectionner
// à la fin de l'adresse tu met les mots clés que tu recherches
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Paris%20Hilton";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// là tu dois mettre ton site
curl_setopt($ch, CURLOPT_REFERER, "http://www.mysite.com/index.html");
$body = curl_exec($ch);
curl_close($ch);

// tu as dans $json un tableau associatif
$json = json_decode($body, true);


utilise la fonction php var_dump sur $json pour voir ce que contient la variable $json

utilises ces urls pour comprendre un minimum :
http://fr.php.net/json_decode
http://code.google.com/apis/ajaxsearch/ ... ntro_fonje

dans la derniere url tu verras qu'est-ce que tu peux rajouter comme arguments à l'adresse dans $url pour récupérer des données différentes par exemple rsz est par défaut "small" c'est à dire 4 résultats. si tu met &rsz=large à la fin de l'adresse tu aura 8 résultats. J'ai pas trouvé plus que ça et je n'ai pas trouvé pour avoir les résultats de 9 à 16.

maximedt
WRInaute discret
WRInaute discret
 
Messages: 172
Inscription: 8 Mai 2008

Message le Dim Jan 04, 2009 18:36

J'ai jamais utilisé la classe objet, comment interprété les résultats ?
Si je veux recuperer l'url du premier je fais comment ?
Merci d'avance.


LiFi
WRInaute impliqué
WRInaute impliqué
 
Messages: 609
Inscription: 14 Juil 2008

Message le Dim Jan 04, 2009 18:54

en mettant le deuxieme argument a true:
$json = json_decode($body, true);

tu obtiens un tableau associatif plutot qu'un objet.
ensuite avec var_dump($json) tu verras à l'écran s'afficher la variable.
si tu veux voir la premiere ligne de $json tu fais var_dump($json[0])

maximedt
WRInaute discret
WRInaute discret
 
Messages: 172
Inscription: 8 Mai 2008

Message le Dim Jan 04, 2009 19:20

Merci pour tes réponses, pour ceux qui auraient la flemme de fouiller dans le array c'est :
echo $json['responseData']['results'][0]['url'];
Mais non, je n'ai que 4 résultats...?
Quand j'écris ceci :
echo $json['responseData']['results'][4]['url'];
Rien ne s'affiche...


LiFi
WRInaute impliqué
WRInaute impliqué
 
Messages: 609
Inscription: 14 Juil 2008

Message le Dim Jan 04, 2009 19:22

je t'ai dis il faut rajouter &rsz=large à ton url de départ pour avoir 8 résultats :
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Paris%20Hilton&rsz=large";
tu les trouves là
http://code.google.com/apis/ajaxsearch/ ... ntro_fonje

maximedt
WRInaute discret
WRInaute discret
 
Messages: 172
Inscription: 8 Mai 2008

Message le Dim Jan 04, 2009 20:28

Merci.
Bon, c'est pareil qu'avec la technique file_get_contents, l'ip est très vite bloquée...
J'aimerai vraiment savoir comment font les logiciels qui analyse le positionnement o_0 ...
Pour info voici ce que j'ai fait :
Code: Tout sélectionner
<?php
for ($i=0;$i<125;$i++) {
$start = $i*8;
$url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=larequete&start='.$start.'&hl=fr&rsz=large';

// sendRequest
// note how referer is set manually
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "http://www.mysite.com/index.html");
$body = curl_exec($ch);
curl_close($ch);

// now, process the JSON string
$json = json_decode($body, true);
// now have some fun with the results...
for ($i2=0;$i2<8;$i2++) {
echo $json['responseData']['results'][$i2]['url']."<br />\n";
}
}
?>

Au bout de 65 résultats, plus rien...
Merci beaucoup d'avance.


LiFi
WRInaute impliqué
WRInaute impliqué
 
Messages: 609
Inscription: 14 Juil 2008

Message le Dim Jan 04, 2009 20:43

ah ok, donc avec l'attribut start on peut avoir tous les résultats sur une requête, j'avais pas calculé :-)

peut etre que si tu renseignes la ligne
curl_setopt($ch, CURLOPT_REFERER, "http://www.mysite.com/index.html");
avec ton url cela fonctionnera?

Moi je n'ai jamais eu de blocage de ce que j'en sais pour l'instant juste en mettant mon url :
curl_setopt($ch, CURLOPT_REFERER, "http://www.lire-fichier.com");

et pas spécialement la page à partir de laquelle je demande les résultats puisque de toutes façons cela n'a pas d'importance. Je m'en sers sur les pages des extensions, en bas, comme ici :
http://www.lire-fichier.com/extension-f ... on-818.htm
Et bien je ne suis jamais tombé sur une extension où il manquait les infos de google.

Mais il est clair que la vitesse à laquelle tu fais tes demandes n'a rien à voir avec mon cas.

toutnouveau
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Inscription: 21 Mar 2011

Re: Récuperer les résultats de Google

Message le Lun Mar 21, 2011 5:16

Bonjours a tous

j ai lu votre discussion et inserer dans la page d appel des resultats google le code suivant

en remplacant http://www.mysite.com/index.html par l url de mon site


Code: Tout sélectionner
<?php
for ($i=0;$i<125;$i++) {
$start = $i*8;
$url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=larequete&start=10&hl=fr&rsz=large';

// sendRequest
// note how referer is set manually
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "http://www.mysite.com/index.html");
$body = curl_exec($ch);
curl_close($ch);

// now, process the JSON string
$json = json_decode($body, true);
// now have some fun with the results...
for ($i2=0;$i2<8;$i2++) {
echo $json['responseData']['results'][$i2]['url']."<br />\n";
}
}
?>


j obtiens ce type d erreur Fatal error: Call to undefined function: json_decode() in google.php on line 21

j ai donc inserer ce code entre 2 balises PHP , definissant la fonction json http://code.google.com/intl/es-PE/apis/websearch/docs/

Code: Tout sélectionner
<?php
var service:HTTPService = new HTTPService(); service.url = 'https://ajax.googleapis.com/ajax/services/search/web'; service.request.v = '1.0'; service.request.q = 'Paris Hilton'; // Optional, send your API key. // Read more about why it's useful to have an API key. service.request.key = 'INSERT-YOUR-KEY' service.resultFormat = 'text'; service.addEventListener(ResultEvent.RESULT, onServerResponse); service.send();  private function onServerResponse(event:ResultEvent):void {   try {     var json:Object = JSON.decode(event.result as String);     // now have some fun with the results...   } catch(ignored:Error) {   } }
?>


Code: Tout sélectionner
<?php
for ($i=0;$i<125;$i++) {
$start = $i*8;
$url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=larequete&start=10&hl=fr&rsz=large';

// sendRequest
// note how referer is set manually
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "http://www.mysite.com/index.html");
$body = curl_exec($ch);
curl_close($ch);

// now, process the JSON string
$json = json_decode($body, true);
// now have some fun with the results...
for ($i2=0;$i2<8;$i2++) {
echo $json['responseData']['results'][$i2]['url']."<br />\n";
}
}
?>




mais ca ne marche pas :? :oops:

j ai oublié qq chose mais quoi ? Merci pour votre aide

Récuperer les résultats de Google

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Blog Search

  • Analyser le positionnement dans Google
    Cet outil vous permet de vérifier si une ou plusieurs page(s) de votre site arrive(nt) dans les premiers résultats de Google, pour certains mots-clés recherchés.
  • Test de positionnement sur data centers
    Cet outil vous permet d'afficher sur une seule page les résultats Google effectués sur de nombreux data centers (centres de données).
  • Analyser le positionnement dans Yahoo
    Cet outil vous permet de vérifier si une ou plusieurs page(s) de votre site arrive(nt) dans les premiers résultats de Yahoo, pour certains mots-clés recherchés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité