Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GOOGLE SEARCH PARSER


Information sur la source

Catégorie :Réseau & Internet Classé sous : google, parser, moteur, recherche, api Niveau : Initié Date de création : 06/06/2007 Date de mise à jour : 06/06/2007 14:05:22 Vu : 9 099

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

Un petit script qui permet d'intégrer le moteur de recherche google à son site sans passer par leur API... peut être très utile pour un intranet par exemple ;)
 

Source

  • <?php
  • /**
  • * Google search parser est un module permettant d'afficher les résultats de recherche google sans passer par leur api
  • * Réalisation : Nans Stefanini -> http://nans.stefanini.free.fr
  • * Blog : http://www.22h22.fr
  • */
  • //renvoie une url longue raccourcie
  • function ShortDisplayURLggp($FullPath,$MaxLenght=65)
  • {
  • If (strlen($FullPath) > $MaxLenght)
  • {
  • //Suppression des arguments et fragment si nécessaire
  • if (strpos($FullPath,"#",0) > 0) $FullPath = substr($FullPath,0,strpos($FullPath,"#",0));
  • if (strpos($FullPath,"?",0) > 0) $FullPath = substr($FullPath,0,strpos($FullPath,"?",0));
  • If (strlen($FullPath) > $MaxLenght)
  • {
  • // Decompose l'URL
  • $FullPathParsed=parse_url($FullPath);
  • // Parties minimales
  • $RootPath = $FullPathParsed['scheme'].'://'.$FullPathParsed['host'];
  • // Slash de fin si dossier
  • if (substr($FullPathParsed['path'],-1) == '/')
  • {
  • $FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1);
  • $isFolder = TRUE;
  • }
  • else
  • {
  • $isFolder = FALSE;
  • }
  • $PathBaseName = basename($FullPathParsed['path']);
  • $FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1*strlen($PathBaseName)-1);
  • // Pas besoin de citer l'index
  • if (($PathBaseName == 'index.html') OR ($PathBaseName == 'index.php') OR ($PathBaseName == 'index.php3'))
  • {
  • $FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1*strlen($PathBaseName)-1);
  • $PathBaseName = basename($FullPathParsed['path']);
  • $isFolder = TRUE;
  • }
  • if ($PathBaseName == '')
  • {
  • if (strlen($RootPath) > $MaxLenght) $RootPath = $FullPathParsed['scheme'].'://'.ShortDisplayHostggp($FullPathParsed['host'],$MaxLenght - strlen($FullPathParsed['scheme']) - 3);
  • return $RootPath;
  • }
  • else if ($FullPathParsed['path'] == '')
  • {
  • return $RootPath.'/…/'.$PathBaseName;
  • }
  • else if ((strlen($RootPath)+strlen($PathBaseName)+3) >= $MaxLenght)
  • {
  • return $RootPath.'/…/'.$PathBaseName;
  • }
  • else
  • {
  • // Reduction du chemin
  • while ((strlen($RootPath)+strlen($PathBaseName)+strlen($FullPathParsed['path'])+3) > $MaxLenght)
  • {
  • $FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1*strlen(basename($FullPathParsed['path']))-1);
  • }
  • if ($FullPathParsed['path'] == '')
  • {
  • return $RootPath.'/…/'.$PathBaseName;
  • }
  • else
  • {
  • return $RootPath.$FullPathParsed['path'].'/…/'.$PathBaseName;
  • }
  • }
  • }
  • Else
  • {
  • return $FullPath;
  • }
  • }
  • Else
  • {
  • return $FullPath;
  • }
  • }
  • function ShortDisplayHostggp($FullHost,$MaxLenght=80)
  • {
  • If (strlen($FullHost) > $MaxLenght)
  • {
  • if (substr_count($FullHost,'.') >= 2)
  • {
  • return $FullHost;
  • }
  • else if (substr_count($FullHost,'.') == 1)
  • {
  • $extension = substr($FullHost,strpos($FullHost,".",0));
  • $FullHost = substr($FullHost,0,strpos($FullHost,".",0));
  • $FullHost = substr($FullHost,0,10).'(…)'.substr($FullHost,-1*(10+3+1+strlen($extension))).'.'.$extension;
  • }
  • else
  • {
  • $FullHost = substr($FullHost,0,$MaxLenght-3).'(…)';
  • }
  • }
  • else
  • {
  • return $FullHost;
  • }
  • }
  • function ShortDisplayNameggp($FullName,$MaxLenght=50)
  • {
  • If (strlen($FullName) > $MaxLenght)
  • {
  • $FullName = substr($FullName,0,$MaxLenght-3).'(…)';
  • return $FullName;
  • }
  • else
  • {
  • return $FullName;
  • }
  • }
  • ?>
  • <?php
  • function googlesearch($req, $start='0',$lg='fr') {
  • $index = @file_get_contents('http://www.google.fr/search?q='.urlencode($req).'&hl='.$lg.'&start='.$start);
  • //echo 'http://www.google.fr/search?q='.urlencode($req).'&hl='.$lg.'&start='.$start;
  • $index = str_replace ('<b>', '', $index);
  • $index = str_replace ('</b>', '', $index);
  • /*
  • Résultats <b>1</b> - <b>10</b> sur un total d'environ <b>1 780</b> pour <b>cogestar</b> (<b>0,15</b> second
  • Résultats <b>61</b> - <b>66</b> sur <b>66</b> pour <b>cogestar</b>. (<b>0,79</b> secondes) */
  • // nombre de liens trouvés
  • preg_match_all('%sur[\s]*(un total d\'environ)* (([0-9 ]*)*) pour%si', $index, $nbliens);
  • /*
  • echo '<pre>';
  • print_r($nbliens);
  • echo '</pre>';
  • */
  • $nblien = $nbliens[2][0];
  • $nblien = str_replace (' ', '', $nblien);
  • // si la requette ne retourne rien on quite la fonction
  • if (!isset($nblien)) {
  • return 'false';
  • break;
  • }
  • preg_match_all('%\<div class=g\>(.*?)(\</div\>)%si', $index, $out);
  • /*
  • echo '<pre>';
  • print_r($out);
  • echo '</pre>';
  • */
  • $tabfin = array();
  • foreach ($out[1] as $key => $value) {
  • /*
  • preg_match_all('%(\<h2 class=r.*\>)?(.*)?\</h2\>%si', $value, $out2);
  • echo '<pre>';
  • print_r($out2);
  • echo '</pre>';
  • */
  • // description
  • $q = '\<td class="j"\>.*(\>)(..*)\<br';
  • // preg_match_all('%%si', $value, $out3);
  • // liens et titre
  • $p = '\<h2 class=r\>\<a href="(.*?)".*\>(..*)\</h2\>';
  • // lien titre + description
  • preg_match_all('%'.$p.'.*'.$q.'%si', $value, $out2);
  • /*
  • echo '<pre>';
  • print_r($out2[1]);
  • print_r($out2[2]);
  • print_r($out2[4]);
  • echo '</pre>';
  • echo '<br /><br /><br />';
  • */
  • $tabfin[$key]['lien'] = $out2[1][0];
  • $tabfin[$key]['titre'] = $out2[2][0];
  • $tabfin[$key]['description'] = $out2[4][0];
  • $tabfin[$key]['nbliens'] = $nblien;
  • /*
  • // pour rechercher les liens verts
  • preg_match_all('%\<span class=a\s*\>\s*([-A-Z0-9+&@#/=~_|!:,.;\%]*)?.*(\</span\>)%si', $value, $out3);
  • echo '<pre>';
  • print_r($out3);
  • echo '</pre>';
  • */
  • }
  • /*
  • */
  • /*
  • echo '<pre>';
  • print_r($tabfin);
  • echo '</pre>';
  • echo '<br /><br /><br />';
  • */
  • return $tabfin ;
  • }
  • /* exemple de fonctionnement */
  • ?>
  • <form action="" method="get" >
  • <input type="text" size="40" name="req" id="req" value="<?php if (isset ($_GET['req']) ){ echo $_GET['req'] ; }?>">
  • <input type="submit" name="submit" value="Rechercher google" >
  • </form>
  • <script>
  • document.getElementById("req").focus();
  • </script>
  • <?php
  • if (!isset ($_GET['pagestartgg']) ){
  • $_GET['pagestartgg'] = 0;
  • }
  • if (isset($_GET['req'])) {
  • $tabgg = googlesearch($_GET['req'],$_GET['pagestartgg']);
  • echo 'Résultats de votre recherche : ';
  • echo '<a href="http://www.google.fr/search?q='.urlencode($_GET['req']).'&start='.$_GET['pagestartgg'].'" target="_blank">Voir sur google</a><br /><br />';
  • foreach ($tabgg as $key => $value) {
  • echo '<strong><a href="'.$value['lien'].'">'.$value['titre'].'</a></strong><br />'.$value['description'].'<br /><a href="'.$value['lien'].'">'.ShortDisplayURLggp($value['lien']).'</a><br /><br />';
  • }
  • $nbliens = $tabgg[0]['nbliens'];
  • echo '<br />';
  • // mise en place des pages
  • $nbpage = round($nbliens/10);
  • echo '<strong>'.$nbpage. ' pages </strong><br />';
  • $ideb = ($_GET['pagestartgg']/10)-10 ;
  • $ideb < 0 ? $ideb = 0: '';
  • $page = ($_GET['pagestartgg']/10);
  • //echo 'page '.($_GET['pagestartgg']/10).'<br />';
  • $nbpage < $ideb ? $ideb = $nbpage : '';
  • //echo 'ideb '.$ideb.'<br />';
  • $ifin = $ideb + 15 ;
  • $ifin > $nbpage ? $ifin = $nbpage : '';
  • echo '<a href="?pagestartgg=0"><<</a> ';
  • for ($i = $ideb; $i<=$ifin; $i++) {
  • if ($page == $i) echo '<strong> ' ;
  • echo '<a href="?pagestartgg='.($i*10).'&req='.urlencode($_GET['req']).'">'.($i+1).'</a> ';
  • if ($page == $i) echo ' </strong>' ;
  • }
  • echo ' <a href="?pagestartgg='.$nbpage.'">>></a> ';
  • }
  • ?>
<?php
/**
* Google search parser est un module permettant d'afficher les résultats de recherche google sans passer par leur api
* Réalisation : Nans Stefanini -> http://nans.stefanini.free.fr
* Blog : http://www.22h22.fr
*/


//renvoie une url longue raccourcie
function ShortDisplayURLggp($FullPath,$MaxLenght=65)
{
	If (strlen($FullPath) > $MaxLenght)
	{
		//Suppression des arguments et fragment si nécessaire
		if (strpos($FullPath,"#",0) > 0) $FullPath = substr($FullPath,0,strpos($FullPath,"#",0));
		if (strpos($FullPath,"?",0) > 0) $FullPath = substr($FullPath,0,strpos($FullPath,"?",0));

		If (strlen($FullPath) > $MaxLenght)
		{
			// Decompose l'URL
			$FullPathParsed=parse_url($FullPath);
			// Parties minimales
			$RootPath = $FullPathParsed['scheme'].'://'.$FullPathParsed['host'];
			// Slash de fin si dossier
			if (substr($FullPathParsed['path'],-1) == '/')
			{
				$FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1);
				$isFolder = TRUE;
			}
			else
			{
				$isFolder = FALSE;
			}
			$PathBaseName = basename($FullPathParsed['path']);
			$FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1*strlen($PathBaseName)-1);
			// Pas besoin de citer l'index
			if (($PathBaseName == 'index.html') OR ($PathBaseName == 'index.php') OR ($PathBaseName == 'index.php3'))
			{
				$FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1*strlen($PathBaseName)-1);
				$PathBaseName = basename($FullPathParsed['path']);
				$isFolder = TRUE;
			}

			if ($PathBaseName == '')
			{
				if (strlen($RootPath) > $MaxLenght) $RootPath = $FullPathParsed['scheme'].'://'.ShortDisplayHostggp($FullPathParsed['host'],$MaxLenght - strlen($FullPathParsed['scheme']) - 3);

				return $RootPath;
			}
			else if ($FullPathParsed['path'] == '')
			{
				return $RootPath.'/…/'.$PathBaseName;
			}
			else if ((strlen($RootPath)+strlen($PathBaseName)+3) >= $MaxLenght)
			{
				return $RootPath.'/…/'.$PathBaseName;
			}
			else
			{
				// Reduction du chemin
				while ((strlen($RootPath)+strlen($PathBaseName)+strlen($FullPathParsed['path'])+3) > $MaxLenght)
				{
					$FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1*strlen(basename($FullPathParsed['path']))-1);
				}

				if ($FullPathParsed['path'] == '')
				{
					return $RootPath.'/…/'.$PathBaseName;
				}
				else
				{
					return $RootPath.$FullPathParsed['path'].'/…/'.$PathBaseName;
				}
			}
		}
		Else
		{
			return $FullPath;
		}

	}
	Else
	{
		return $FullPath;
	}
}

function ShortDisplayHostggp($FullHost,$MaxLenght=80)
{
	If (strlen($FullHost) > $MaxLenght)
	{
		if (substr_count($FullHost,'.') >= 2)
		{
			return $FullHost;
		}
		else if (substr_count($FullHost,'.') == 1)
		{
			$extension = substr($FullHost,strpos($FullHost,".",0));
			$FullHost = substr($FullHost,0,strpos($FullHost,".",0));
			$FullHost = substr($FullHost,0,10).'(…)'.substr($FullHost,-1*(10+3+1+strlen($extension))).'.'.$extension;
		}
		else
		{
			$FullHost = substr($FullHost,0,$MaxLenght-3).'(…)';
		}
	}
	else
	{
		return $FullHost;
	}
}

function ShortDisplayNameggp($FullName,$MaxLenght=50)
{
	If (strlen($FullName) > $MaxLenght)
	{
		$FullName = substr($FullName,0,$MaxLenght-3).'(…)';
		return $FullName;
	}
	else
	{
		return $FullName;
	}
}

?>
<?php




function googlesearch($req, $start='0',$lg='fr') {

$index = @file_get_contents('http://www.google.fr/search?q='.urlencode($req).'&hl='.$lg.'&start='.$start);
//echo 'http://www.google.fr/search?q='.urlencode($req).'&hl='.$lg.'&start='.$start;
$index = str_replace ('<b>', '', $index);
$index = str_replace ('</b>', '', $index);

/*
Résultats <b>1</b> - <b>10</b> sur un total d'environ <b>1 780</b> pour <b>cogestar</b>  (<b>0,15</b> second
Résultats <b>61</b> - <b>66</b> sur <b>66</b> pour <b>cogestar</b>.  (<b>0,79</b> secondes) */
  // nombre de liens trouvés
   preg_match_all('%sur[\s]*(un total d\'environ)* (([0-9 ]*)*) pour%si', $index, $nbliens);
 
 /*
   echo '<pre>';
   print_r($nbliens);
   echo '</pre>';

*/
$nblien = $nbliens[2][0];
$nblien = str_replace (' ', '', $nblien);


// si la requette ne retourne rien on quite la fonction
if (!isset($nblien)) {
  return 'false';
  break;
}

 preg_match_all('%\<div class=g\>(.*?)(\</div\>)%si', $index, $out);
            
 
 /*
 echo '<pre>';
 print_r($out);
 echo '</pre>';
*/

$tabfin = array();
foreach ($out[1] as $key => $value) {
  
  /*
     preg_match_all('%(\<h2 class=r.*\>)?(.*)?\</h2\>%si', $value, $out2);
   
    echo '<pre>';
    print_r($out2);
    echo '</pre>';
*/

  // description
  $q = '\<td class="j"\>.*(\>)(..*)\<br';
   // preg_match_all('%%si', $value, $out3);
  
  
  // liens et titre
  $p = '\<h2 class=r\>\<a href="(.*?)".*\>(..*)\</h2\>';
  
  // lien titre + description
  preg_match_all('%'.$p.'.*'.$q.'%si', $value, $out2);
  
  /*
  echo '<pre>';
    print_r($out2[1]);
    print_r($out2[2]);
    print_r($out2[4]);
    echo '</pre>';
  echo '<br /><br /><br />';
  */
  
  $tabfin[$key]['lien'] = $out2[1][0];
  $tabfin[$key]['titre'] = $out2[2][0];
  $tabfin[$key]['description'] = $out2[4][0];
  $tabfin[$key]['nbliens'] = $nblien;
  
  /*
  // pour rechercher les liens verts
   preg_match_all('%\<span class=a\s*\>\s*([-A-Z0-9+&@#/=~_|!:,.;\%]*)?.*(\</span\>)%si', $value, $out3);
 echo '<pre>';
    print_r($out3);
    echo '</pre>';
    */
    
 
}
/*

      */ 
   
   /*
    echo '<pre>';
    print_r($tabfin);

    echo '</pre>';
  echo '<br /><br /><br />';
  */
  
  

   
   
return $tabfin ;
 
  
}




/* exemple de fonctionnement */


?>
<form action="" method="get" >
<input type="text" size="40" name="req" id="req" value="<?php if (isset ($_GET['req']) ){ echo $_GET['req'] ; }?>">
<input type="submit" name="submit" value="Rechercher google"  >
</form>
<script>
  document.getElementById("req").focus();
</script>
<?php
if (!isset ($_GET['pagestartgg']) ){
$_GET['pagestartgg'] = 0;
}

if (isset($_GET['req'])) {

$tabgg =  googlesearch($_GET['req'],$_GET['pagestartgg']);

echo 'Résultats de votre recherche : ';
echo '<a href="http://www.google.fr/search?q='.urlencode($_GET['req']).'&start='.$_GET['pagestartgg'].'" target="_blank">Voir sur google</a><br /><br />';

foreach ($tabgg as $key => $value) {
  echo '<strong><a href="'.$value['lien'].'">'.$value['titre'].'</a></strong><br />'.$value['description'].'<br /><a href="'.$value['lien'].'">'.ShortDisplayURLggp($value['lien']).'</a><br /><br />';
}

$nbliens = $tabgg[0]['nbliens'];
echo '<br />';

// mise en place des pages
$nbpage = round($nbliens/10);
echo '<strong>'.$nbpage. ' pages </strong><br />';

$ideb = ($_GET['pagestartgg']/10)-10 ;
$ideb < 0 ? $ideb = 0: '';
$page = ($_GET['pagestartgg']/10);
//echo 'page '.($_GET['pagestartgg']/10).'<br />';


$nbpage < $ideb ? $ideb = $nbpage : '';
//echo 'ideb '.$ideb.'<br />';

$ifin = $ideb + 15 ;
$ifin > $nbpage ? $ifin = $nbpage : '';

echo '<a href="?pagestartgg=0"><<</a>   ';
  for ($i = $ideb; $i<=$ifin; $i++) {
    if ($page == $i)  echo '<strong>  ' ;
    echo '<a href="?pagestartgg='.($i*10).'&req='.urlencode($_GET['req']).'">'.($i+1).'</a> ';
      if ($page == $i)  echo '  </strong>' ;
  }
echo '   <a href="?pagestartgg='.$nbpage.'">>></a> ';

}
?>

Conclusion

Ce code parse le code html des résultats renvoyés par google sur une requette... donc le jour ou ils changeront radicalement de mise en page ça risque de ne plus fonctionner ... m'enfin je pense que c'est pas demain la veille :)
Au debut du code deux trois fonctions qui ne sont pas de mo mais qui sont utiles pour la mise en page des url trop longues ;)
 

Historique

06 juin 2007 14:05:23 :
credits

Commentaires et avis

signaler à un administrateur
Commentaire de caviar le 06/06/2007 14:00:28

Voila voila... j'attends vos commentaires :)

signaler à un administrateur
Commentaire de FloBaoti le 06/06/2007 14:08:53

Google permet d'avoir les résultats en XML me semble, non ? Si c'est toujours de vigueur, je ne vois pas pourquoi se compliquer à parser du HTML.

signaler à un administrateur
Commentaire de neigedhiver le 06/06/2007 17:25:49

Salut,

Tu réinventes la roue... C'est bien... Mais bon...

http://www.webrankinfo.com/google/outils/google-api.php
http://code.google.com/

Bref, une recherche sur google, et c'est marre.

Enfin c'est bien, ça a du t'occuper un certain temps, et puis c'était un bon exercice.

signaler à un administrateur
Commentaire de caviar le 06/06/2007 17:33:10

nan j'ai pas fait ça just pour le fun ...
e fait je déveoppe un intranet et du coup vu que google verrifie la provenance des requettes pour autoriser ou pas une clef api en fonction du site je ne peux pas fournir d'adresse de site puisque ce sera en intranet...
maintenant si gg fournis des résultats parsés en XML !! alors là je prends dessuite ... ceci dit ou ça ?
thx
@++

signaler à un administrateur
Commentaire de neigedhiver le 06/06/2007 17:43:23

Ouais non mais pfffffff

Si tu sais pas utiliser un proxy ou autre, aussi... Parce que bon, intranet, peut-être, mais ton intranet il est pas isolé du web, la preuve... Donc il y a forcément un moyen de relayer la requête. M'enfin bon... Moi j'dis _a, j'dis rien, hein... C'est juste qu'avec une API, forcément, c'est plus efficace qu'en parsant toutes les pages de résultat... Surtout que le jour où Google change un <p> en <div> tout ton code tombe à l'eau...

Enfin c'est toi qui vois.

signaler à un administrateur
Commentaire de coucou747 le 07/06/2007 05:19:54

reinventer la roue c'est pas forcement mal neigedhiver...

moi j'aurais pas (mais alors pas du tout) fait comme ca : j'aurais fait une classe abstraite MoteurDeRecherche, et des classes filles genre YahooSearch, MsnSearch, GoogleSearch, ExaleadSearch, etc... et une classe Factory pour ensuite faire un truc genre :

$a=new Search('Google://word1/word2/....');

ca ferait un truc plus souple, capable de chercher des images sur plein de moteurs, et autre....

signaler à un administrateur
Commentaire de caviar le 07/06/2007 09:42:50

je suis pas encore au niveau des classes objet ...
faut que je m'y penche ... j'arive à peu près à bidouiller celles des autres... mais en autodidacte ça demande un peu plus de temps à prendre en main ... et le temps c'est ce qui me manque le plus dans la vie ...lol :D :D

signaler à un administrateur
Commentaire de LeFauve42 le 11/06/2007 09:36:20

Salut,

J'ai ecrit ce genre de code quelques fois, et si ca fonctionne, attend-toi a patcher tous les 6 mois (avec de la chance)... Comme dit Neigedhiver, google ca bouge beaucoup...

Par contre, je crois bien qu'ils ont arrete de fournir des clef d'API googlesearch... (fin 2006 si je me souviens...). Probablement pour pousser leur nouvelle API ajax...

Donc, si tu n'en as pas deja une, c'est trop tard...
(enfin, il doit etre possible de faire des appels ajax depuis le serveur, mais j'avoue ne pas avoir eu le courage de regarder :o) ).

signaler à un administrateur
Commentaire de ordiman85 le 15/06/2007 19:44:51

J'ai fait ça pour des moteurs de recherche de mp3 (radioblog, eSpew, AOL audio, ...) et ça fonctionne super bien. J'ai créé une fonction pour chaque moteur au début mais ensuite j'ai fini par faire une fonction générale du style "searchAudio($engines, $search, $page, $nbperpage...)" avec des fichiers de configuration xml personnalisables basés sur les fichiers xml OpenSearch de firefox. Aujourd'hui mon script gère 11 moteurs et affiche les résultats des moteurs sélectionnés en 1 page. Avec 3 moteurs activés la réponse est d'environ 3 secondes, sauf si les résultats sont déjà dans le cache.

Je confirme que l'inconvénient de parser du html c'est lorsque la page change, mais un petit coup de patch au niveau des expressions régulières, et ça repart :) d'autant plus qu'il est facile de savoir si les résultats sont anormaux par une fonction (longueur de la réponse, balises dans la réponse, etc).
@+

signaler à un administrateur
Commentaire de R3dDragon le 28/01/2008 16:27:14 10/10

Les résultats via Google et les API sont différents...
Il est donc mieux (en parlant qualité des résultats) de passer par un perseur, mais d'un autre côté les APIs utilise moins de ressource ...

C'est toujours à voir, chacun fait ce qu'il veut...

signaler à un administrateur
Commentaire de koutb le 17/05/2008 23:46:17

1001 merci c'est ce que je cherche

signaler à un administrateur
Commentaire de smed79 le 02/07/2008 20:09:19

je vous propose ça:

[img]http://www.farspic.com/files/vcx4798hbaqswlfyjmz7.jpg[/img]

[code]<form action="http://www.google.fr/cse" id="cse-search-box" target="_blank">
  <div>
    <input type="hidden" name="cx" value="partner-pub-4340418046855073:ce3sfx-5ixy" />
    <input type="hidden" name="ie" value="ISO-8859-1" />
    <input type="text" name="q" size="24" />
    <input type="submit" name="sa" value="Rechercher" />
  </div>
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=fr"></script>[/code]

signaler à un administrateur
Commentaire de badoux le 16/12/2008 14:15:27

Je confirme il existe bien un flux pour les résultats de google, mais le problème est que ceux-ci sont limité à environ 20 résultats.
De mon côté je vais devoir également passer par un parser pour la récupération des résultats, ravis de ton commentaire "ordiman85", seulement 3sec, c'est pour toute les pages de tous les moteurs, ou pour une seule d'un moteur ?.
Une question persiste dans ma petite tête: Est-ce que Google, Yahoo, etc, ne finiront pas, par nous mettre en black-list, à force de leur rendre visite constament ?

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

moteur de recherche google? [ par tremier_julien ] ou puis-je trouver le code source du moteur de recherche google afin de l'intégrer dans mon site? Pouvez vous me donnez des indications Merci moteur de recherche google [ par mariobotta ] bonjour,j'ai int&#233;gr&#233; le formidable moteur de recherches de google sur mon site.Je voulais savoir si il y avait moyen d'afficher le r&#233;su moteur de recherche : en dur, en php-mysql... ?? [ par hdh ] Bonsoir ! Je suis en train de faire un site internet.... et pour aider l'internaute &#224; trouver facilement l'info je voudrais mettre en place un mo Paramètres via adresse [ par Galmiza ] Salut,Quand on tape un mot dans google exemple "recherche", on est envoy&#233; &#224; une page nomm&#233;e comme ci-dessous:http://www.google.fr/searc Moteur de recherche pour mon site perso [ par benoyt ] Bonjour &#224; tous et &#224; toute, je n'arrive pas &#224; trouver un moteur de recherche pour mettre sur mon site. En fait mon site, parle de livre, moteur de recherche [ par el_bassir ] j'aimerai realiser un moteur de recherche interne, vous allez dire que c simple, mais l probleme c k j vx qu'a chaque fois que j tappe ou j supprime u Recherche par critère ou reccherche flou [ par pbreaker ] Bonjour, Je suis en gal&#232;re pour un moteur de recherche, en fait mon probl&#232;me consiste a afficher des resultats d'une requete de ce moteur ma de l'aide pour un moteur de recherche [ par maurimaure ] Bonjour, Je voudrais développer un moteur de recherche pour un site internet qui contient deux partie : 1-partie dynamyque (BDD MySql) 2-partie statiq help! pb moteur de recherche sur bd [ par frenchyie ] Salut à tous,Suis novice sur php, on peut dire que je bidouille...je bugs pour faire un moteur de recherche basé sur ma base de donnée, simple en appa recherche web avec google comme 01net.com [ par astuces_jeux ] bonjour je cherche comment faire une recherche sur le web comme 01net.com avec google <A href="


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,780 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.