Obtener el Pagerank de Google con PHP y MySQL.
por Julio Laguna - redribera team

1.-Introducción.

La mayoría de los webmasters, hasta hace bien poco, siempre han tenido una especial obsesión en uno de los baremos de clasificación del gigante de los buscadores de internet Google. Se trata ni mas ni menos que del archiconocido pagerank.
En el enlace anterior podeís ver los detalles generales de la definición de pagerank según la wikipedia. Se trata básicamente de un sistema que califica la relevancia de una página web, otorgandole una calificación del 1 al 10 en función de la cantidad de páginas web que enlazan a esta. El caso de pagerank 0 suele ser una penalización de Google hacia la página, y además está el caso de pagerank no asignado.
Además influye de cara a esta calificación la calidad de las páginas que nos enlazan, es decir, páginas con un pagerank elevado, califican mas alto que páginas de menor pagerank. El pagerank se suele actualizar (exportar a los datacenters públicos de Google) cada tres meses por Google, aunque no hay un periodo marcado para realizarlo, sino que es Google quien decide.
La mayoría de webmasters conocen este dato, tradicinalmente gracias a la famosa Google Toolbar, que es un plug-in que se instala en nuestro navegador y entre otras utilidades, está la de mostrar una barrita de color verde que no es ni mas ni menos que el pagerank de la página que visitamos.
Además multitud de páginas web nos permiten calcular el pagerank de una página concreta, El DirectorioPR, una de nuestras webs amigas es una de ellas.
No profundizaremos mas en los detalles del algoritmo, ya que en internet existe cantidad de información al respecto de este tema. Os dejamos un enlace a la wikipedia donde profundizar mas sobre este algoritmo. Definición de pagerank en wikipedia.

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.

Imagen para pagerank 0
Imagen para pagerank 0
Imagen para pagerank 1
Imagen para pagerank 1
Imagen para pagerank 2
Imagen para pagerank 2
Imagen para pagerank 3
Imagen para pagerank 3
Imagen para pagerank 4
Imagen para pagerank 4
Imagen para pagerank 5
Imagen para pagerank 5
Imagen para pagerank 6
Imagen para pagerank 6
Imagen para pagerank 7
Imagen para pagerank 7
Imagen para pagerank 8
Imagen para pagerank 8
Imagen para pagerank 9
Imagen para pagerank 9
Imagen para pagerank 10
Imagen para pagerank 10
Imagen para pagerank no asignado
Imagen para pagerank no asignado

 
Indice