Accueil > Forum > > > > CALCULER SON PAGE RANK GOOGLE
CALCULER SON PAGE RANK GOOGLE
samedi 6 août 2005 à 11:30:40 |
CALCULER SON PAGE RANK GOOGLE

malik7934
|
Hello,
J'étais vraiment curieux de savoir comment on calcule un page rank. Du
coup je suis parti fouiner sur le web et j'avoue avoir eu une peine
énorme pour trouver comment faire! Le problème est de chopper
l'algorithme qui calcul le checksum de la page désirée sans lequel
google refuse de fournir le page rank... c'est chose faite :)
Ce post est à titre INDICATIF, c'est pour la curiosité
intellectuelle. Si les admins considèrent qu'il s'apparente trop à du
hack, qu'il soit enlevé sans autre!
Ceci dit, je vous livre mes investigations du matin...
En exécutant le code suivant (qui n'est pas de moi) avec l'url désirée
en paramètres (par exemple
"http://tonsite.com/pagerank.php/url?http://www.phpcs.com)
<?php
/*
Written and contributed by
Alex Stapleton,
Andy Doctorow,
Tarakan,
Bill Zeller,
Vijay "Cyberax" Bhatter
traB
This code is released into the public domain
*/
header("Content-Type: text/plain; charset=utf-8");
define('GOOGLE_MAGIC', 0xE6359A60);
//unsigned shift right
function zeroFill($a, $b)
{
$z = hexdec(80000000);
if ($z & $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return $a;
}
function mix($a,$b,$c) {
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
return array($a,$b,$c);
}
function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
if(is_null($length)) {
$length = sizeof($url);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12) {
$a += ($url[$k+0]
+($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
$b += ($url[$k+4]
+($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
$c += ($url[$k+8]
+($url[$k+9]<<8)
+($url[$k+10]<<16)+($url[$k+11]<<24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len)
/* all the case statements fall through */
{
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);
/* the first byte of c is reserved for the length */
case 8 : $b+=($url[$k+7]<<24);
case 7 : $b+=($url[$k+6]<<16);
case 6 : $b+=($url[$k+5]<<8);
case 5 : $b+=($url[$k+4]);
case 4 : $a+=($url[$k+3]<<24);
case 3 : $a+=($url[$k+2]<<16);
case 2 : $a+=($url[$k+1]<<8);
case 1 : $a+=($url[$k+0]);
/* case 0: nothing left to add */
}
$mix = mix($a,$b,$c);
/*-------------------------------------------- report the result */
return $mix[2];
}
//converts a string into an array of integers containing the numeric value of the char
function strord($string) {
for($i=0;$i<strlen($string);$i++) {
$result[$i] = ord($string{$i});
}
return $result;
}
// converts an array of 32 bit integers into an array with 8 bit values. Equivalent to (BYTE *)arr32
function c32to8bit($arr32) {
for($i=0;$i<count($arr32);$i++) {
for ($bitOrder=$i*4;$bitOrder<=$i*4+3;$bitOrder++) {
$arr8[$bitOrder]=$arr32[$i]&255;
$arr32[$i]=zeroFill($arr32[$i], 8);
}
}
return $arr8;
}
$url = 'info:'.$_GET['url'];
$ch = GoogleCH(strord($url));
$ch=sprintf("%u", $ch);
$ch = ((($ch/7) << 2) | (((int)fmod($ch,13))&7));
$prbuf = array();
$prbuf[0] = $ch;
for($i = 1; $i < 20; $i++) {
$prbuf[$i] = $prbuf[$i-1]-9;
}
$ch = GoogleCH(c32to8bit($prbuf), 80);
$ch = sprintf("6%u",$ch);
$url2 = 'http://www.google.com/search?client=navclient-auto&ch='.$ch.'&feature=Rank&q=info:'.$_GET['url'];
echo $url2;
?>
on obtient: http://www.google.com/search?client=navclient-auto&ch=62400035933&feature=Rank&q=info:http://www.phpcs.com
ou ch est le checksum de q.
Si on suit ce lien dans google, on arrive sur une page XML qui contient entre autre:

Tout le monde aura remarqué la balise <RK>...
Du coup, reste à récupérer ce RK:
$source = implode ('', file ("$url2"));
$source = strstr($source, '<RK>');
$sup = strstr($source, '</RK>');
$rank = str_replace("$sup","", $source);
$rank = str_replace("<RK>","", $rank);
echo 'Le page rank de '.$_GET['url'].' est de '.$rank;
La dernière ligne va afficher dans cet exemple:
Le page rank de http://www.phpcs.com est de 5
Voili voilà. En gros je trouve ça assez
inutile, je l'avoue mais le page rank semble être la grosse
préoccupation de beaucoup de monde!
Ce bout de code permet d'afficher son pagerank sur son site par exemple, ce qui est sympa. Sans plus 
Sur ce, bonne journée à tous, c'est le week-end et je vais essayer de faire autre chose que de l'ordi 
Enjoy, ++
Malik7934
|
|
samedi 6 août 2005 à 11:42:54 |
Re : CALCULER SON PAGE RANK GOOGLE

malik7934
|
PS: parfois, cela ne marche pas... je vais pas tout révéler et vous laisser comprendre pourquoi
|
|
samedi 6 août 2005 à 11:51:10 |
Re : CALCULER SON PAGE RANK GOOGLE

Mizuka
|
C'est vrai que beaucoup s'y intéresse dans le sens où ils considèrent ça comme les sites du genre weborama et autres classement de site. Le but étant d'être le premier :D
Je ne m'y intéressais pas. Mais j'ai relevé quand même. Merci de nous faire profiter de tes efforts
Mizuka
|
|
samedi 6 août 2005 à 12:15:57 |
Re : CALCULER SON PAGE RANK GOOGLE

Mizuka
|
En effet j'ai un soucis.
Le rank de l'url que je donne ne s'affiche pas.
J'ai 'Le rank de ... est de '
|
|
samedi 6 août 2005 à 13:01:34 |
Re : CALCULER SON PAGE RANK GOOGLE

neolien
|
Salut Makik, Je vois que tu t'intéresse aux problématiques du référencement depuis mon post sur le cloacking.... Quand à tes inquiétudes sur une "source de hack", je te rassure affiché son vraie PR sur son site n'en n'est pas du tout !! Mais si la tâche est louable, il existe pléthore de bon site qui le propose avec un logo visuelle : [ Lien ] [ Lien ] [ Lien ] [ Lien ] [ Lien ] [ Lien ] [ Lien ]ou un outil très bien fait et gratuit [ Lien ]@ Bientôt Malik Au fait oui j'utilise plusieurs pseudo suivant mes recherches 
|
|
dimanche 7 août 2005 à 14:38:28 |
Re : CALCULER SON PAGE RANK GOOGLE

malik7934
|
Hello neolien,
Mon but dans cette investigation était justement de ne pas passer par
des outils sur d'autres sites, mais directement chez soit. Je n'aime
pas trop les dépendances
|
|
dimanche 7 août 2005 à 16:28:44 |
Re : CALCULER SON PAGE RANK GOOGLE
|
dimanche 7 août 2005 à 16:54:19 |
Re : CALCULER SON PAGE RANK GOOGLE

malik7934
|
Complet et fonctionnel... tu me decois un peu sur ce coup
Si j'utilise "mon" script pour phpcs je reçois comme réponse:
<GSP VER="3.2">
<TM>0.084299</TM>
<Q>info:http://www.phpcs.com</Q>
<PARAM name="client" value="navclient-auto" original_value="navclient-auto"/>
<PARAM name="ch" value="62400035933" original_value="62400035933"/>
<PARAM name="feature" value="Rank" original_value="Rank"/>
<PARAM name="q" value="info:http://www.phpcs.com" original_value="info:http://www.phpcs.com"/>
-
<RES SN="1" EN="1">
<M>1</M>
<XT/>
-
<R N="1">
<U>http://www.phpcs.com/</U>
<UE>http://www.phpcs.com/</UE>
-
<T>
PHPCS.com | PHP CodeS SourceS | 1842 sources PHP, Source, Code <b>...</b>
</T>
<RK>5</RK>
...
Si j'utilise le script que tu proposes:
Forbidden
Your client does not have permission to get URL /search?client=navclient-auto&ch=318925651&feature=Rank&q=info:http://www.phpcs.com
La raison? Le checksum... L'algo a changé et si ca marche pour certain
site (je crois que c'est le cas), cela n'est pas systématique.
Enjoy, ++
PS: j'ai testé ton site... peut-etre que tes tests de cloaking ont eu
des effetes négatifs car la réponse du script est étrange... plus de
PR...
|
|
dimanche 7 août 2005 à 18:44:26 |
Re : CALCULER SON PAGE RANK GOOGLE

neolien
|
Avec quoi tu as testé mon site ?, le script dont tu nous a fais part ?
Pour l'instant, le PR est encore de 4, mais j'ai des contradictions avec certains outils :
Pour les datacenters de Google, le PR de l'index est de 4 Quand j'utilise l'outil en ligne de rankit, www.webdconseils.com ne ressort pas ou indique une redirection, par contre avec ce même outil l'url suivante www.webdconseils.com/PR10.php ressort avec un futur PR de 2 ??!!
Mouais !, il y a un décalage entre le PR affiché par la Toolbar de Google (qui devrait se mettre à jour que tous les trimestres maintenant !), le PR live et le futur PR après la prochaine "GoogleDance"..
C'est pas évident de s'y retrouver !
En tout cas si Google avait constater des problèmes de Cloacking sur mon site, j'aurais immédiatement subi soit :
. l'effet "Sandbox" ou . l'effet "Bourbon" ou . le blacklistage total du site.. ce qui n'est pas le cas pour toutes ces mauvaises surprises.
En tout les cas, si le script est véritablement fonctionnel, les résultats devraient arrivés vers le mois de septembre environ..
Pour le script complet et fonctionnel de la Google Community, c'est bizarre, tu es sur que le problème vient du checksum ?, car ce renvoi d'erreur me fait penser à un pbl de permission sur le serveur ?...enfin !!
Sur ce @ + Malik 
|
|
dimanche 7 août 2005 à 18:57:37 |
Re : CALCULER SON PAGE RANK GOOGLE

malik7934
|
Hello,
Le checksum est la clé pour accéder au PR, s'il est faux, il y a un message d'erreur. Donc oui, le problème vient du checksum.
Google semble avoir changé l'algo il y a qq tps et toutes les sources sur le net ne sont pas à jour!
En ce qui concerne ton site, c'est vrai que
http://www.google.com/search?client=navclient-auto&ch=63033696244&feature=Rank&q=info:http://www.webdconseils.com
donne un page rank de 4 maintenant: dans l'après-midi, la page xml générée était différente... aucune idée pourquoi...
Enjoy, ++
|
|
Cette discussion est classée dans : page, case, url, rank, mix
Répondre à ce message
Sujets en rapport avec ce message
stopper le chargement de la page [ par fabiin ]
Salutje voudrai connaitre l'equvalent de response.enden phpen grospour arrêter l'execution du code@+Fabs12W
url précédente [ par eax ]
juste une petite question: est-il possible à partir d'une page php de connaitre l'url de la page précédente qui a envoyé le visiteur ici? (sur le meme
recuperer l'url de la page ou je me trouve [ par Alexnancy ]
salut,comment puis-je recuperer l'url de la page ou je me trouve ??j'ai essaye $HTTP_REFERER, mais ca recupere l'url de la page ou je viens, c pas pra
coment incrementer 1 $variable dans une url ??? [ par bencha ]
Bon voila :- apres un clic sur le lien "page suivante" - je voudrais incrementer une variable "$id"- et inversement sur le lien "page précédente".Alor
derniere page [ par mathieumg ]
Comment fait-on pour aller chercher la valeur de la derniere page visitée ???Merci beaucoupMathieu M-G http://www.maxicom.ca.tc
Crypté ou coder une url. [ par bricethenetman ]
Slt a tous, j'utilise actuellement les pseudo-frames pour organiser mon site mais url sont donc du type : mondomaine/index.php?rubrique=1&page=1. J'ai
simplement appeler une page ... [ par michelvernet2 ]
bonjour,comment je fais pour appeler une page suite à une fonction IF:if ..... aller à l'url pepe.phpelse... aller à l'url meme.phpMERCI
Recuperation de données d'une URL [ par twiems ]
TwiemsJe souhaite vivement une solution pour me permettre de récupérer des données d'une page que je met dans un lien et ensuite utiliser ces données
pseudo frame [ par DocteurVB ]
je voudrais savoir comment on fait pour passer des paramètres d'une pages à l'autre via l'URLle pb :je voudrais faire un site avec des pseudo framedan
Livres en rapport
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|