Foros del Web » Programando para Internet » PHP »

Obtener PageRank y Alexa Ranking

Estas en el tema de Obtener PageRank y Alexa Ranking en el foro de PHP en Foros del Web. ¿Existe alguna forma de obtener el Goggle Page Rank y el Alexa Ranking con PHP aportando una URL específica? Gracias ASLAN...
  #1 (permalink)  
Antiguo 28/10/2007, 17:28
Avatar de ASLAN  
Fecha de Ingreso: septiembre-2007
Mensajes: 419
Antigüedad: 16 años, 7 meses
Puntos: 2
Pregunta Obtener PageRank y Alexa Ranking

¿Existe alguna forma de obtener el Goggle Page Rank y el Alexa Ranking con PHP aportando una URL específica?
Gracias

ASLAN
__________________
Registros Akáshicos
  #2 (permalink)  
Antiguo 29/10/2007, 02:21
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Obtener PageRank y Alexa Ranking

Alexa tiene un API, mira la documentacion en su pagina web. Y el pagerank creo que han hackeado el API de la barra de Google y puedes simular la consulta.
  #3 (permalink)  
Antiguo 29/10/2007, 13:59
Avatar de ASLAN  
Fecha de Ingreso: septiembre-2007
Mensajes: 419
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Obtener PageRank y Alexa Ranking

Cita:
Iniciado por DarkJ Ver Mensaje
Alexa tiene un API, mira la documentacion en su pagina web. Y el pagerank creo que han hackeado el API de la barra de Google y puedes simular la consulta.
Gracias por responder.
Voy a chequear el API de Alexa

Acerca del API hackeado de Google, probé varios scripts y no me funcionan.
Según leí, no funciona en todos los servidores y aún no determinan cuál es exactamente el requisito.

Como dije, voy a cheqear lo de Alexa y sigue en pié la consulta acerca de cómo obtener con PHP el Google Page Rank.

Gracias

ASLAN
__________________
Registros Akáshicos
  #4 (permalink)  
Antiguo 15/01/2008, 20:25
Avatar de alexfut  
Fecha de Ingreso: diciembre-2007
Ubicación: México
Mensajes: 484
Antigüedad: 16 años, 4 meses
Puntos: 8
Re: Obtener PageRank y Alexa Ranking

Bueno creo que es algo asi

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 xor32($a, $b)
{
return int32($a) ^ int32($b);
}

//return least significant 32 bits
//works by telling unserialize to create an integer even though we provide a double value
function int32($x)
{
return unserialize ("i:$x;");
//return intval($x); // This line doesn't work on all servers.
}

function mix($a,$b,$c)
{
$a -= $b; $a -= $c; $a = xor32($a,zeroFill($c,13));
$b -= $c; $b -= $a; $b = xor32($b,$a<<8);
$c -= $a; $c -= $b; $c = xor32($c,zeroFill($b,13));
$a -= $b; $a -= $c; $a = xor32($a,zeroFill($c,12));
$b -= $c; $b -= $a; $b = xor32($b,$a<<16);
$c -= $a; $c -= $b; $c = xor32($c,zeroFill($b,5));
$a -= $b; $a -= $c; $a = xor32($a,zeroFill($c,3));
$b -= $c; $b -= $a; $b = xor32($b,$a<<10);
$c -= $a; $c -= $b; $c = xor32($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)
{
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]);
}
$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;
}

//returns -1 if no page rank was found
function get_page_rank($url)
{
$ch = "6".GoogleCH(strord("info:" . $url));

$pagerank = -1;
$fp = @ fsockopen ("www.google.com", 80, $errno, $errstr, 10);
if (!$fp)
{
echo "$errstr ($errno)<br />\n";
}
else
{
$out = "GET /search?client=navclient-auto&ch=" . $ch . "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n" ;
$out .= "Host: www.google.com\r\n" ;
$out .= "Connection: Close\r\n\r\n" ;
@ fwrite ($fp, $out);

while (!feof ($fp))
{
$data = @ fgets ($fp, 128);
$pos = strpos ($data, "Rank_");

if ($pos !== false)
{
$pagerank = trim (substr ($data, $pos + 9));
}
}
@ fclose ($fp);
}
return $pagerank;
}
?>

Yo tambien estoy intentando algo parecido pero mas avanzado, y como dice Darkj, la API de pagerank no esta disponible al publico, aunque la hckearon y se usa en varias webs, y yo kiero usarlo en la mia, pero estoy en busca de mas documentacion y cuando lologre yo te paso todo con mucho gusto, solo avisame pidelo en mi foro buscasdeweb.com/foros
  #5 (permalink)  
Antiguo 15/01/2008, 21:00
Avatar de alexfut  
Fecha de Ingreso: diciembre-2007
Ubicación: México
Mensajes: 484
Antigüedad: 16 años, 4 meses
Puntos: 8
Re: Obtener PageRank y Alexa Ranking

Mira para lo que tu quieres hacer en cuwhois, solo mostrar el pagerank de una web pues no es dificil, yo lo qu epensaba es ke kerias hace run calculador, pero mira lo que quieres hacer, aqui va un tutorial.

2.-Actualización masiva del pagerank partiendo de una tabla MySQL de enlaces con php.

En numerosos sitios webs, sobretodo los directorios de enlaces, es habitual, ver este dato de pagerank de alguno u otro modo reflejado en los listados de sitios, como una cualidad mas del sitio.
De hecho el tutorial y los scripts que se plantean, tienen como principal objetivo el uso en este entorno. De hecho hemos creado este tutorial, a raiz de la incorporación de este sistema en nuestro propio directorio de webs. La mayoría de estos sitios, de uno u otro modo incorporan una o varias tablas principales con los sitios y direcciones URL, de estos, en las cuales, un dato cualificativo mas es el pagerank y habitualmente, este es mostrado en estos listados de enlaces.
A continuación voy a poner una estructura de tabla MySQL ficticia (que usamos en una tutorial anterior Construir un directorio de Webs con PHP y MySQL., la cual hemos modificado y le hemos añadido un campo numérico llamado pagerank.
CREATE TABLE `enlaces` (
`id` int(11) NOT NULL auto_increment,
`idsolicitud` int(11) default NULL,
`fecha` date NOT NULL default '0000-00-00',
`titulo` varchar(255) NOT NULL default '',
`link` varchar(255) NOT NULL default '',
`comment` text,
`seccionid` int(11) NOT NULL default '0',
`clave1` varchar(128) default NULL,
`pagerank` int(4) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

En realidad de esta estructura, que es bastate común en directorios de enlaces, solo necesitaremos los dos campos marcados en negrita, links y pagerank. El primero de ellos será la página cuyo pagerank queremos calcular, y el segundo será el valor de este, almacenado en la tabla. Así podremos presentarlo en los listados de un directorio de enlaces, o cualquier sección de una página web, que utilice los datos de enlaces contenidos en esta tabla.
Por supuesto, no todos tendreís una disposición de datos como esta, pero es trivial la adptación y cambios necesarios para adaptarlo a nuestro sistema. Para nuestro siguiente script, esta estructura nos vendrá perfecta como base para probar las funciones de php que actalizan el pagerank masiváente.
Bajo estas lineas, está el script php que actualiza masivamente el pagerank de todos los registros contenidos en la tabla enlaces, basandose en la URL suministrada por el campo link.

Código html y php para el ejemplo.

El corazón de este script es la clase GooglePageRank que obtiene el Google Pagerank para una URL (lineas 27 a 132).
La clase GooglePageRank no es una invención nuestra. En Internet, hay multitud de páginas que nos proporcionan cantidad de funciones php (y otros) para obtener el PageRank de una URL. Nosotros hemos testeado esta clase que hemos incluido en este tutorial y que hemos obtenido del Blog de Julian Yanover Bitsignals.com.
La URL exácta es esta Como chequear nuestro pagerank en php.

Las lineas 12 a 25 definen la función update_pagerank, que es la encargada de actualizar el campo pagerank de nuestra tabla (por id) con el obtenido mediante el método getPageRank de la clase GooglePageRank.

El script comienza validando la existencia de la variable tipo en la URL de referencia (metodo GET, lineas 138 a 158). Es decir el script se ejecuta de tres modos diferentes:
Si tipo es todos (ejecutando la página de modo nombre_script?tipo=todos), la SQL de la linea 141 selecciona absolutamente todos los registros de la tabla enlaces, y para todos ellos procesamos la obtención y actualización del PageRank.
Si tipo es nulos (ejecutando la página de modo nombre_script?tipo=nulos), entonces solo operaremos con los regstros cuyo PageRank es nulo. Por defecto en la definición de la tabla enlaces, el campo pageRank se actualiza a NULL, un PageRank N/A, también adopta el valor NULL, en la tabla de enlaces. Claro necesitamos este modo de operar, para podeer actualizar solo los registros para los que no tenemos información de PageRank, ya que si añadimos regstros nuevos, y ya tenemos el PageRank calculado para el resto, a no ser que Google no haya realizado una nueva actualización del PageRank, no tiene sentido que actualicemos estos datos,perdiendo tiempo de computo, cuando solo nos interesarían los registros nuevos de nuestra tabla de enlaces.
Finalmente cualquier otro valor de tipo, o la falta indefinición de este, provoca que no se haga nada.
De las lineas 151 a 157, se encuentra el bucle que actualiza el PageRank del registro tras procesar la información del enlace. Así mismo el status de la operación se imprime en pantalla, para que podamos ver las incidencias (linea 156).

Con estos valores en nuestra tabla, es muy fácil mostrar una imagen de PageRank parecida a la de las barras verdes de la Google ToolBar. Aquí os dejo las imagenes que nosotros utilizamos para la presentación del pagerank en nuestro directorio por si las quereís utilizar. No obstante hay muchas páginas que ofrecen imagenes muy bónitas para mostrar el pagerank, y además siempre os las podeís fabricar vosotros mismos con un diseño acorde a vuestro sitio, con un editor del tipo FireWorks de Macromedia u otro similar.


SUERTEE!!!!!!!
  #6 (permalink)  
Antiguo 15/01/2008, 21:01
Avatar de alexfut  
Fecha de Ingreso: diciembre-2007
Ubicación: México
Mensajes: 484
Antigüedad: 16 años, 4 meses
Puntos: 8
Re: Obtener PageRank y Alexa Ranking

Mira mejor cheka el tutorial completo eb http://www.redribera.es/formacion/tutoriales/tutorial_obtener-el-pagerank-de-google-con-php-y-mysql_144
  #7 (permalink)  
Antiguo 27/12/2009, 16:52
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Re: Obtener PageRank y Alexa Ranking

Hola a todos soy nuevo aquí, me preguntava si alguno de los miembros de aquí sabria explicarme por que el scrpt de redrivera solo actualiza unas 100 url's????? a mi me funciona bien, el único problema es que necesito que me actualice unas 30mil url'a de mi bbdd y solo consigo actualizar el pagerank a unas 100
Les estaria enormemente agradecido la ayuda que me puedan aportar
Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:15.