Obtener el PageRank de una página con PHP

PageRankEl PageRank es un valor numérico que representa la importancia que una página web tiene en Internet.

Primero habría que reseñar que podemos apreciar que el PageRank no cumple las características de un ranking normal, pero sí está definido para cada página. El PageRank de una pagina (A) esta definido de manera recursiva por los PageRanks de las diferentes páginas que enlazan a la página(A).

Obtener el PageRank de una página con PHP

El siguiente script puede ser descargado de aquí, su implementación es muy sencilla ya que únicamente hay que pasarle el parámetro "url" (con la url de la que se quiere desvelar el PageRank).

www.adobe.com


Posibles respuestas a la ejecución del script

  • A: valor numérico de 1 a 10.
  • B: Si no hay salida es que la página no tiene PageRank asignado.
  • C: 0, es duro pero ese sería el valor del PageRank de la página dada.

<?php
function StrToNum($Str, $Check, $Magic)
{
    $Int32Unit = 4294967296; // 2^32
    $length = strlen($Str);
    for ($i = 0; $i < $length; $i++)
    {
        $Check *= $Magic;
        if ($Check >= $Int32Unit)
        {
            $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
            $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
        }
        $Check += ord($Str{$i});
    }
return $Check;
}

function HashURL($String)
{
    $Check1 = StrToNum($String, 0x1505, 0x21);
    $Check2 = StrToNum($String, 0, 0x1003F);

    $Check1 >>= 2;
    $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
    $Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
    $Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);

    $T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) 
    | ($Check2 & 0xF0F );
    $T2 = (((($Check1 & 0xFFFFC000) << 4) | 
    ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 );

    return ($T1 | $T2);
}

function CheckHash($Hashnum)
{
    $CheckByte = 0;
    $Flag = 0;

    $HashStr = sprintf('%u', $Hashnum) ;
    $length = strlen($HashStr);

    for ($i = $length - 1; $i >= 0; $i --)
    {
        $Re = $HashStr{$i};
        if (1 === ($Flag % 2))
        {
            $Re += $Re;
            $Re = (int)($Re / 10) + ($Re % 10);
        }
        $CheckByte += $Re;
        $Flag ++;
    }

    $CheckByte %= 10;
    if (0 !== $CheckByte)
    {
        $CheckByte = 10 - $CheckByte;
        if (1 === ($Flag % 2) )
        {
            if (1 === ($CheckByte % 2))
            {
                $CheckByte += 9;
            }
            $CheckByte >>= 1;
        }
    }

    return '7'.$CheckByte.$HashStr;
}

function getpagerank($url)
{
    $query="http://toolbarqueries.google.com/search?client=navclient-auto&ch="
    .CheckHash(HashURL($url)).
    &features=Rank&q=info:".$url."&num=100&filter=0";
    $data=file_get_contents($query);
    $pos = strpos($data, "Rank_");
    if($pos === false)
    {
    }
    else
    {
        $pagerank = substr($data, $pos + 9);
        return $pagerank;
    }
}

if(isset($_GET['url']))
{
    echo getpagerank($_GET['url']);
}

?>

PageRank 10

En este gráfico podemos apreciar la dramática subida que tendremos que afrontar si queremos llevar un sitio web a un valor de PageRank alto (> 5), como se puede apreciar el salto de PageRank 9 a PageRank 10 es un abismo, pero como veremos despues en algunos de los "mitos sobre el pagerank" el valor del PageRank es un número real y no uno entero como muchos usuarios piensan... por ello el salto de un valor de PageRank a otro es un proceso gradual pero invisible para nuestros ojos.

PageRank10

Imagen de Elliance

Hace algún tiempo publicamos esta entrada con curiosidades del PageRank y un listado de páginas con PageRank 10, ahora ninguna de estas páginas dispone de PageRank 10 e incluso el dominio "www.google.com" tiene PageRank 8.

Comentarios

copio el código y que hago

copio el código y que hago con el?
me responde alguien?
gracias

Harías: http://www.tudominio.

Harías:
http://www.tudominio.com/pagerankcode.php?url=www.canaldeportivo.com
Magnífico script, me lo guardo.
Felicidades

No hace falta tanto codigo

Hola gente.

Para saber el Page Rank no hace falta mucha cosa.
Si utilizas el navegador Firefox existe un plugin buenísimo para saber Pagerank, paginas indexadas, ranking de Alexa etc...

También se puede saber el Page rank con IE instalando la barra de google en el navegador.

Espero que haya sido e ayuda.

Un saludo.

Cierto Juanra

Muchas gracias Juanra estás en lo cierto! has visto alguna página con PageRank 10

www.google.com

google.com si lo tiene, debes acceder a través de google.es a "Google.com in English"

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato