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 !

CONNAITRE LE NOMBRE DE PAGES INDEXÉES SUR GOOGLE


Information sur la source

Description

Une petite fonction qui vas renvoyer le nombre de page indexées par google sur un nom de domaine particulier.
bien utile pour des applications de référencement
@+
 

Source

  • <?php
  • function get_link_gg ($site) {
  • $trois = substr($site, 0,3);
  • $sept = substr($site, 0,7);
  • if ($trois != 'www' ) {
  • if ($sept != 'http://') {
  • echo 'nom de domaine invalide';
  • return false;
  • break;
  • }
  • }
  • if ($trois == 'www') {
  • $site = 'http://'.$site;
  • }
  • //recup le ndd
  • $dom = ereg_replace("(http://[^/]*/)(.*)", "\\1", $site);
  • //echo 'domaine='.$dom;
  • $req = 'http://www.google.com/search?q=site:'.$dom.'&hl=fr';
  • //echo 'requette='.$req.'<br />';
  • if ($src = @file_get_contents($req)) {
  • } else {
  • echo '<p style="background-color: red; color:white; padding: 0 0 0 10px; font-weight: bold;">404 - URL introuvable</p>';
  • return false;
  • }
  • /*
  • echo '<textarea rows="20" cols="50" style="width:700px;">';
  • echo htmlentities($src);
  • echo 'xfgdxgf';
  • echo '</textarea>';
  • */
  • preg_match_all('%[\s]*sur un total d\'environ[\s]*\<b\>(([0-9&nbsp;]*)*)\</b\>[\s]*%si', $src, $out);
  • /*
  • echo '<pre>';
  • print_r($out);
  • echo '</pre>';
  • */
  • if (isset ($out[1][0])) {
  • return $out[1][0];
  • } else {
  • echo 'erreur lors de la reception des résultats';
  • return false;
  • }
  • }
  • echo get_link_gg ('http://www.google.fr/');
  • ?>
<?php
function get_link_gg ($site) {

$trois = substr($site, 0,3);
$sept = substr($site, 0,7);

if ($trois != 'www' ) {
  if ($sept != 'http://') {
  echo 'nom de domaine invalide';
  return false;
  break;
  }
} 

if ($trois == 'www') {
$site = 'http://'.$site;
} 

//recup le ndd
$dom = ereg_replace("(http://[^/]*/)(.*)", "\\1", $site);
//echo 'domaine='.$dom;


$req = 'http://www.google.com/search?q=site:'.$dom.'&hl=fr';
//echo 'requette='.$req.'<br />';

  if ($src = @file_get_contents($req)) {
  } else {
  echo '<p style="background-color: red; color:white; padding: 0 0 0 10px; font-weight: bold;">404 - URL introuvable</p>';
  	return false;
  }
  
  /*
  echo '<textarea rows="20" cols="50" style="width:700px;">';
 echo htmlentities($src);
 echo 'xfgdxgf';
 echo '</textarea>';
*/

 preg_match_all('%[\s]*sur un total d\'environ[\s]*\<b\>(([0-9&nbsp;]*)*)\</b\>[\s]*%si', $src, $out);
 
 /*
   echo '<pre>';
   print_r($out);
   echo '</pre>';
   */
   
   if (isset ($out[1][0])) {
   return $out[1][0];
   } else {
   echo 'erreur lors de la reception des résultats';
   return false;
   }
}

echo get_link_gg ('http://www.google.fr/');
?>

Conclusion

décommenter les commentaires pour comprendre le fonctionnement... mais rien de très complexe ;)
 

Commentaires et avis

signaler à un administrateur
Commentaire de LaurentKOogar le 21/05/2007 04:36:30

Le même en 4 lignes ;)  

  $url_link_GG = 'http://www.google.fr/search?hl=fr&q=link%3A'.$url.'';
  $GG = @file_get_contents($url_link_GG);
  preg_match('`<b>([0-9 ]+)</b> liés à`', $GG, $L);
  echo $L[1];

++
KOogar

signaler à un administrateur
Commentaire de qisbug le 21/05/2007 07:38:31

@Koogar

C'est bien ce code en quelques lignes.
Mais où met-on cela ?

Merci

Qis

signaler à un administrateur
Commentaire de qisbug le 21/05/2007 10:58:36

à tous les deux

J'ai essayé les deux formules. Rien ne marche !
Que fallait-il faire ? Je suis grand débutant donc il me manque des détails pratiques.

Merci d eme les apporter si c'est possible

qis

signaler à un administrateur
Commentaire de ornythorink le 21/05/2007 19:25:09

Bonjour

Le jour où j'ai commençé à coder des robots c'est un des premiers trucs qui me sois passé par la tête.
Effectivement on peut le réduire et surtout effectivement ça peut être interessant de le faire tourner en CLI mais le plus gros problème que tu
pourrais rencontrer c'est de te faire blacklister ton IP. Il y a deux astuces la premiere pour espacer tes requêtes, la deuxième si elle est
possible  sur le serveur sur lequel tu travailles c'est une bibliothèque PHP.
Faut quand même chercher un minimum...
Sinon pour ton exemple il faut passer de ereg à preg (systématiquement) on gagne du temps et de la souplesse

Ornythorink

signaler à un administrateur
Commentaire de onomatopet le 22/05/2007 09:28:30

Salut!

je ne comprends pas une chose et j'aimerai poser la question suivante : pourquoi ce tuto porte le niveau "Débutant" si les débutants ne comprènnent pas coment il fonctionne ni où placer ce bout de code.
Oui ça sert à quoi de mettre niveau débutant s'il n'ya que les experts qui échange leur étalage de connaissance sans rien expliquer à personne ....
Désolé si j'y suis allé trop fort!

Merci de répondre à la question de qisbug, elle m'intérèsse aussi

signaler à un administrateur
Commentaire de qisbug le 22/05/2007 09:39:22

Merci à onomatopet ! J'ai déjà posé une question sur ce forum (à un autre sujet) sans avoir de réponse.

En tout cas, tout ceci a eu un résultat positif : j'ai fait des recherches sur google et j'ai trouvé plus simple !

Il suffit d'entrer, dans le moteur de recherche de Google :

site:monsite.fr   Part exemple avec le site http://www.chateaubriant.org  il suffit d'écrire :

site:www.chateaubriant.org

et on trouve le nombre de pages référencées sur google. C'est si simple !

Merci à tous ........

maisd la question de onomatopet reste pertinente (même si elle est ... impertinente !)

qis

signaler à un administrateur
Commentaire de ornythorink le 22/05/2007 20:47:42

Après un bref retour en arrière, je pense qu'en même vu que je n'ai jamais fait d'études spécialisées en informatique que c'est une source accessible, évidemment ça necessite le minimum d'investissement  si on ne connais pas PHP mais mon reflexe si je tombais sur une source en C++
que je ne comprends pas ce serait d'aller voir la doc au lieu de dire que c'est trop compliqué immédiatement sans dire exactement pourquoi..:)

Alors je pense (mais je peux pas en être sur vu que vous donnez assez peu de précisions) qu'un des problèmes ce serait éventuellement qu'il s'agit d'une fonction, donc si tu inclus cette fonction et qu'ensuite tu l'appelles autant de fois que tu as d'urls (même si le plus simple dans ce cas ce serait de passer un Array à la fonction mais on va pas tout compliquer) et en faisant un echo de cette appel tu récupère le nombre de pages indexées.

si le problème vient de preg_match_all fait une recherche sur les expressions régulières avec php dans google parce que ça risque d'être un peu long.

Si c'est la commande site: fais une recherche sur les "hacks" google il y en a d'autre (qui fonctionne aussi sur yahoo on l'oublie, il marche parfois même mieux voir la commande link: qui te retourne le nombre de liens pointant vers ton site, que google lui par contre arrange à sa sauce en n'en retournant qu'une partie...).

Pour info j'ai passé ma certification PHP il y a un an et demi mais avant je me suis enfilé environ huit bouquins pour les basiques un seul bien choisi suffit, en l'occurence pour cette source c'est même plus qu'il n'en faut. N'hesitez pas à poser des questions précises.Si j'ai pu le faire il y a pas de raisons
Allez bon courage

signaler à un administrateur
Commentaire de caviar le 22/05/2007 20:58:22

lol
salut à vous..spisdi débutants ! ... bon ... alors j'ai mis débutant comme niveau parce que sinon les vrais de vrais ben ils rallent qu'on ponds des codes qui pour eux sont de niveau débutant alors qu'en fait non ... lol bref tout est une question de point de vue ...et moi qui était débutant il n'y à pas si lgtps j'aurai dit la même chose...
en ce qui concerne l'utilisation ben c'est une fonction ... donc on peut récupérer le résultat dans une variable histoire de l'afficher ou on veux dans une page (sans aller sur le site de google comme l'indique QISBUG...)
par exemple

$site = "http://www.22h22.fr/";
// on appelle la fonction et on stocke le résultat dans une variable $nb
$nb=get_link_gg ($site);
//on affiche le résultat ailleurs dans le code
echo $nb;

pour ce qui est de l'idée de LaurentKOogar ..ça marche mais ça ne gére qand même pas tout tout les cas ...


signaler à un administrateur
Commentaire de caviar le 22/05/2007 21:01:12

du coup j'ai une question pour ornythorink moi ...
quest ce que tu appelles biblio php ?
ça permet de contourner un blacklistage d'IP ça ?
hmmm ^^
on trouve où ?
@++

signaler à un administrateur
Commentaire de ornythorink le 22/05/2007 23:24:55

une bibliothèque PHP une des natives(certains disent modules, en fait ça n'a pas d'importance), en l'occurence Curl, alors à ta question je ne dis pas ça évite TOUS les blacklistage d'IP
mais utilisée intelligemment ça te laisse une plus grosse marge ;)
je vais pas refaire un script qui m'a pris une semaine ^^
pour la télécherger c'est:
http://www.curl.haxx.se

En revanche elle doit être compilée sur ton serveur Apache donc amuse toi bien , ça c'est pas facile et pour le coup je suis pas le mieux placé pour expliquer l'installation mais c'est documenté ;)

signaler à un administrateur
Commentaire de caviar le 23/05/2007 09:49:28

suis en mutualisé donc pas possible mais un jour j'y viendrai ;)
thx !
@++

signaler à un administrateur
Commentaire de ornythorink le 23/05/2007 19:29:52


Ouais c'est un peu la plaie ces mutualisés soldés
En moins pratique mais en plus facilement intégrable il y a le package PEAR HTTP_Request
En attendant tu peux t'entrainer sur une plateforme wamp avec Curl de chez toi mais faudra penser à l'activer dans le php.ini ;)

signaler à un administrateur
Commentaire de mogador le 18/09/2007 18:54:25

bonjour  j'ai telechargé un script : check rak  sur un site , mais une foi je l'est installé sur mon site  , ne marche pas  , à essayé  sur: http://www.mogador.info.free.fr/sedik_positionnement.rar


sur le  site:
http://italy-italie.com/sedik_positionnement/sedik.php

vous avez une correction ?

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

referencement google et PHP [ par michelvernet2 ] bonjour,pour éviter un PB de session avec aol, je force la session dans l'adresse, voir : www.nouveauxobjets.com . Pour ceux qui ont la google barre, récuperation des liens trouvés par google [ par jabs123 ] 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'outi echange de liens pour améliorer le referencement [ par jcpenou ] Je voudrais proposer aux visiteurs de mon site qui disposent d'un site internet personnel d'insérer un lien vers leur site a condition que ceux-ci ins Liens relatifs et include externe [ par Gandalf5798 ] Bonjour,j'ai une question !Quand on inclue dans un fichier php un lien externepar exemple include('http://www.google.fr');l'image de google ne s'affic Pattern MVC et liens hypertextes [ par mentral ] Imaginons un framework PHP type MVC classique, avec le index.php à la racine du serveur comme point d'entrée unique de l'application, avec les modules Probleme Récursivité [ par Grogan ] Bonjour,Je suis entrain d'écrire une fonction qui me permet d'afficher tout les liens contenu dans une de mes tables de base de données. Ces liens son questions que l'indexation d'un site [ par chamallow ] Bonjour,Peut-être des questions similaires ont déjà été posées, si c'est le cas désolée. Mais je lis plein de choses, et je m'embrouille Alors je voul Adresse web transphormation en liens ?? [ par ptiloup73 ] Bonjour,Voici mon problème :J'ai un formulaire avec un text area, je rentre un tas de blabla et des adresse web pour un seul et mème enregistrement.J' liens dynamique [ par guisx00 ] Salut Voila j'ai un petit soucis je cherche une petite aide. Je souhaite realise une action sur un fichier en temps normal on fait comme sa logad.p Liens direct avec balise SELECT [ par ghostkill77 ] Bonjour tout le monde, j'aurai une question toute bête :quand je crée un menu deroulant grace a la balise SELECT je voudrais que lorsque je selectionn


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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,41 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é.