Récuperer le PR d'une URL
23 messages
• Page 1 sur 2 • 1, 2
- NextGeneration
- WRInaute occasionnel

- Messages: 428
- Inscription: 27 Sep 2006
l'annuaire mydir récupere le pr de chaque site inscrit. donc dans le code source, on doit trouver une function() qui permet cela. Je vais regarder cette semaine, pour trouver le bout qui t'intéresse
-

Leonick - WRInaute accro

- Messages: 18812
- Inscription: 8 Aoû 2004
j'ai regardé un peu, ça a l'air space quand même. C'est la seule partie à laquelle je n'ai pas touché. Sauf à enlever l'automatisation de la requête, qui n'est plus faite qu'à la demande maintenant.NextGeneration a écrit:l'annuaire mydir récupere le pr de chaque site inscrit. donc dans le code source, on doit trouver une function() qui permet cela. Je vais regarder cette semaine, pour trouver le bout qui t'intéresse
-

Altenide - WRInaute impliqué

- Messages: 563
- Inscription: 26 Nov 2003
j'ai regardé un peu, ça a l'air space quand même. C'est la seule partie à laquelle je n'ai pas touché. Sauf à enlever l'automatisation de la requête, qui n'est plus faite qu'à la demande maintenant.
tu as le bout de code sous la main ? merci
-

Leonick - WRInaute accro

- Messages: 18812
- Inscription: 8 Aoû 2004
je crois qu'il doit tout y avoir
- Code: Tout sélectionner
// Calcul PR
define('GMAG', 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 GCH($adress, $length=null, $init=GMAG) {
if(is_null($length)) {
$length = sizeof($adress);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12) {
$a += ($adress[$k+0] +($adress[$k+1]<<8) +($adress[$k+2]<<16)
+($adress[$k+3]<<24));
$b += ($adress[$k+4] +($adress[$k+5]<<8) +($adress[$k+6]<<16)
+($adress[$k+7]<<24));
$c += ($adress[$k+8] +($adress[$k+9]<<8)
+($adress[$k+10]<<16)+($adress[$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+=($adress[$k+10]<<24);
case 10: $c+=($adress[$k+9]<<16);
case 9 : $c+=($adress[$k+8]<<8);
/* the first byte of c is reserved for the length */
case 8 : $b+=($adress[$k+7]<<24);
case 7 : $b+=($adress[$k+6]<<16);
case 6 : $b+=($adress[$k+5]<<8);
case 5 : $b+=($adress[$k+4]);
case 4 : $a+=($adress[$k+3]<<24);
case 3 : $a+=($adress[$k+2]<<16);
case 2 : $a+=($adress[$k+1]<<8);
case 1 : $a+=($adress[$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;
}
function getPR($_url) {
$adress = 'info:'.$_url;
$ch = GCH(strord($adress));
$adress='info:'.urlencode($_url);
$pr =@file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$adress");
$pr_str = @implode("", $pr);
return substr($pr_str,strrpos($pr_str, ":")+1);
}
-

Altenide - WRInaute impliqué

- Messages: 563
- Inscription: 26 Nov 2003
merci bcp Leonick
je vois pas ce que tu trouve de bizarre dans le code... es tu sur de m'avoir tout donné ? dans tous les cas je vais comparé cette version avec quelques autres que j'ai déja.
Pour voir, sans se casser la tete, pour chaque page, le PR il existe un petit soft téléchargeable à -http://www.webkeysoft.com/keyword_crawler.php
(il faut cocher l'option PR) j'ai fait quelques test çà semble correct.
Par contre la source que j'ai donné plus haut, je ne sais pas pourquoi ne donne rien. Je vais un petit peu me prendre la tête sur ce truc.
je vois pas ce que tu trouve de bizarre dans le code... es tu sur de m'avoir tout donné ? dans tous les cas je vais comparé cette version avec quelques autres que j'ai déja.
Pour voir, sans se casser la tete, pour chaque page, le PR il existe un petit soft téléchargeable à -http://www.webkeysoft.com/keyword_crawler.php
(il faut cocher l'option PR) j'ai fait quelques test çà semble correct.
Par contre la source que j'ai donné plus haut, je ne sais pas pourquoi ne donne rien. Je vais un petit peu me prendre la tête sur ce truc.
-

Altenide - WRInaute impliqué

- Messages: 563
- Inscription: 26 Nov 2003
Comment peut-on récupérer le PR d'une URL, facilement ?
(Sans passer par les sites spécialisés qui s'offrent un BL à chaque affichage d'un PR).
Bin le code de mydir c pas le top, doit manquer des trucs ou je sais pas. Me renvoi toujours des trucs aberrant, marche pas sur ovh ...
Par contre j'ai trouvé (php.source) et bricolé un tout petit peu le code ci-dessous. $url étant l'url à analyser (par défaut celle de la page active). Ou bien tu l'envoi ds une table sql si tu veux faire des stats ou autres (la variable induite par getrank($url) )
- Code: Tout sélectionner
<?php
// powered by anyone
//Definie la constante "GOOGLE_MAGIC"
define("GOOGLE_MAGIC", 0xE6359A60);
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;
}
//Cette fonction est utilisée pour le calcul du checksum de Google
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);
}
// Calcul le checksum de Google pour une URL donnée
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) /* Toute les cases retournent vraie */
{
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);
/* Le premier byte de c est réservé pour la longueur */
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: rien à additionner */
}
$mix = mix($a,$b,$c);
return $mix[2];
}
// Converti une chaine dans le tableau d'entiers
// contenant une valeur numérique de caractères
function strord($string) {
for($i=0;$i<strlen($string);$i++) {
$result[$i] = ord($string{$i});
}
return $result;
}
// Fonction utilisée pour obtenir la valeur du PageRank.
function getrank($url, $prefix="info:", $datacenter="www.google.com") {
//Si $prefix est "info:", alors la Toolbar pagerank sera retourné.
$url = $prefix.$url;
//Prend le checksum de Google pour $url utilisant la fonction GoogleCH.
$ch = GoogleCH(strord($url));
$file="http://$datacenter/search?client=navclient-auto";
$file.="&ch=6$ch&features=Rank&q=$url";
// si le rank n'existe pas renvoi n/A
$oldlevel = error_reporting(0);
$data = file($file);
error_reporting($oldlevel);
if(!$data || preg_match("/(.*)\.(.*)/i", $url)==0) return "N/A";
$rankarray = explode (":", $data[2]);
$rank = trim($rankarray[2]);
//Renvoie N/A si il n'y a pas de rank.
if($rank=="") return "N/A";
return $rank;
}
// on récupère l'url courante.
function url_actuelle()
{
return $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
}
$url = url_actuelle();
// Affiche le PageRank
echo $url." a pour PR : ".getrank($url);
?>
- NextGeneration
- WRInaute occasionnel

- Messages: 428
- Inscription: 27 Sep 2006
if(!$data || preg_match("/(.*)\.(.*)/i", $url)==0) return "N/A";
if($rank=="") return "N/A";
3 Raisons pour ce "N/A" :
- Page inexistante
- Url mal formée ( cf la regex )
- Pagerank non attribué
( cf code source )
if($rank=="") return "N/A";
3 Raisons pour ce "N/A" :
- Page inexistante
- Url mal formée ( cf la regex )
- Pagerank non attribué
( cf code source )
23 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Récupérer image via url
- Récupérer une URL
- recuperer url malgré rewrite
- récupérer variable # ancre url en php
- recuperer 1 seule variable dans URL
- recuperer url du fichier apres upload
- Récupérer valeur après # dans une url
- Récupérer URL puis la traiter sans variable GET
- Récuperer l'ancien URL après une 301 ? possible ?
- recupérer des $_GET apres un url rewriting
- Google API : guide de développement de l'API Google - 20-09-2002
- Tutoriel URL Rewriting - 01-05-2006
- Suite de l'article sur le fichier .htaccess : l'URL rewriting - 16-01-2003
- La balise d'URL canonique inter-sites - 16-12-2009
- Google n'indexe pas les URL qui se terminent par .0 ? - 13-06-2008
- Guide d'optimisation des redirections pour le référencement - 31-05-2006
- 3ème partie de l'article .htaccess : les réécritures conditionnelles - 21-01-2003
- Connaitre son PageRank sans la Google Toolbar... - 20-10-2002
Consultez la description détaillée des produits ou services de Google suivants : Le raccourcisseur d'URL youtu.be, Google goo.gl
- Analyse des backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées. - Recherche de citations d'un site en texte brut
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

