Récuperation des liens trouvés par google

Résolu
Signaler
Messages postés
19
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
6 juillet 2007
-
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
-
Salut tout le monde,

Avez vous une idée si on veut récuperer tout les liens trouvé par google lors d'un recherche d'un mot clé donné.

J'utilise l'outils phpdig pour parcourir la page mais je n'obtient aucun lien.

Mon but est de recenser tout les liens trouvé par google sur un mot clé donné.


Merci.

JabsDev

13 réponses

Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

<ol>
<?phpfunction strip_selected_tags($str, $tags "", $stripContent false){
    preg_match_all("/<([^>]+)>/i",$tags,$allTags,PREG_PATTERN_ORDER);
    foreach ($allTags[1] as $tag){
        if ($stripContent) {
            $str = preg_replace("/<".$tag."[^>]*>.*<\/".$tag.">/iU","",$str);
        }
    $str = preg_replace("/<\/?".$tag."[^>]*>/iU","",$str);
    }
    return $str;
}

$request="php expression reguliere";
$nb_result="15"; //MAXIMUM 100

$handle = fopen("http://www.google.fr/search?hl=fr&q=".urlencode($request)."&num=".$nb_result."&btnG=Recherche+Google&meta=", "rb");

$contents = '';
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);

$motif_link='``';
$motif_describe='`<td class=j(.+?)</td>`';

preg_match_all($motif_link,$contents,$out_link);
preg_match_all($motif_describe,$contents,$out_describe);

$count=count($out_link[0]);
for($i=0;$i<$count;$i++){
    $link=strip_selected_tags($out_link[0][$i],'');
    $link=str_replace('class=l ','',$link);
    $describe=str_replace('> - <','><',$out_describe[0][$i]);
    $describe=strip_selected_tags($describe,'<nobr>',true);
    $describe=strip_selected_tags($describe,'<td>
');
    echo '<li>',$link,"
\r\n",$describe,"</li>
\r\n";
}
?>
</ol>


Vilhjálms
Sigurðsdóttir aka Frëyjá
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesud

Google refusera de renvoyer plus de 100 résultats par page cependant vous pouvez modifier l'URL afin de démarrer l'affichage des résultats à partir du résultat x (100 par exemple) comme ceci :

http://www.google.fr/search?q=toto&num=100&hl=fr&lr=&start=100&sa=N

il ne reste plus cas reparser le résultat. Cependant méfiance au time_limit.

Vilhjálms
Sigurðsdóttir aka Frëyjá
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

avec l'API google (si toutefois elle existe encore) ça sera plus simple, sinon tu fais un fsockopen() sur la page de résultats et puis un preg_match_all() avec une expression régulière.

a +
Messages postés
19
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
6 juillet 2007

Merci Anthomicro,
Mais le problème c'est que je ne voit même pas les liens dans le code source de la page reésultats
JabsDev
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Heu, si ce sont des liens y'a forcément des <a href quelque part, sinon là je pense que j'ai loupé un truc XD
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Heu, si ce sont des liens y'a forcément des <a href quelque part, sinon là je pense que j'ai loupé un truc XD
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Heu, si ce sont des liens y'a forcément des <a href quelque part, sinon là je pense que j'ai loupé un truc XD
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Je me disais bien que ce boulet de sjon l'avait pompé quelque part son code, en l'occurence ici :

http://fr.php.net/strip-tags
Messages postés
19
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
6 juillet 2007

Génial, merci beaucoup vilhjalms et Anthomicro ainsi que les autres.
Par contre ,est ce que c'est possible d'avoir tous les résultat ( +de 100 ) ?
je suis en train de manipuler le lien renvoyé par google dans:
fopen("http://www.google.fr/search?hl=fr&q=".urlencode($request)."&num=".$nb_result."&btnG=Recherche+Google&meta=",
"rb");

JabsDev
Messages postés
19
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
6 juillet 2007

Merci beaucoup vilhjalms,
vous m'avez sauver la vie, 
Merci infiniment

JabsDev
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

De rien. Pouvez vous valider les réponses qui vous ont aidé en cliquant sur réponse acceptée sur chacune d'elle ?


Vilhjálms
Sigurðsdóttir aka Frëyjá
Messages postés
19
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
6 juillet 2007

Re-Salut tout le monde.
Je peux récupérer maintenant les liens trouvés par google ( tous ) par contre je constate que google ne renvoye que 1000 résultats.
Est-ce qu'il y a des moyens de récuperer tous les resultats (liens) trouvés par google ?

JabsDev
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð


Il semblerait que non cependant récupérer les
51 100 000
résultats de "toto" par exemple je n'en vois pas l'intérêt. Voir peut
être au niveau des api Google notament la
Google AJAX Search API

ici : http://code.google.com/apis/ajaxsearch/ mais bon je n'y crois pas trop.







Vilhjálms
Sigurðsdóttir aka Frëyjá