Obtener el PageRank de una página con PHP

Por el 29 de diciembre de 2008

en: Negocio|Programacion

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.

Dejar un comentario