Recuperar estadísticas de un sitio con Ruby

junio 28 2009Se el primero en comentar

Guardado en : Programación, Social / Internet, Software Libre

Muchas ocasiones hemos tenido la necesidad de integrar información que está en otro sitio web dentro del nuestro.
En este ejemplo integraremos las estadísticas del sitio clustermaps, dentro del contenido de un sitio web.
Utilizaremos Ruby como lenguaje de scripting, dado que es más portable que usar bash o powershell, además de ser más potente dado que es un lenguaje de programación completo.

require 'open-uri'
require 'hpricot'
url = 'http://www2.clustrmaps.com/es/counter/maps.php?url=http://www.misitio.com'
#Abrimos el archivo desde el sitio web.
parser = Hpricot(open(url))
table = (parser/"html/body/form/div/div[2]/table[2]/tr/td[2]/")
#Quitamos comentarios y demas cosas (scripts)
html = table.inner_html.gsub(/<!--[.]*-->/,'')
html = html.gsub(/<!--|google_.*|\/\/.*/,'').strip
puts html = '
<table class="estadisticas"><tr><td>'+html.gsub(/2[0-9]+/,'\0')+"</table>"
#Tenemos nuestro archivo de estadísticas
stats = File.new("stats.htm", "w")
#Guardamos y cerramos.
stats.write(html)
stats.close
#html listo para ser añadido con Ajax.

Explicaré un poco la líneas

require 'open-uri'
require 'hpricot'

open-uri permite extender las funciones de manejo de archivos para poder utilizar URL’s en ellas.

hpricot es un parser de html muy sencillo de utilizar que permite utilizar selectores CSS y XPath.
Para obtener una consulta XPath fácilmente al contenido del elemento que buscamos, podemos usar la extensión de Firefox Firebug que permite copiar el camino XPath a un determinado elemento, y con el método inner_html se puede obtener su contenido.
El método gsub de la clase String, permite reemplazar un patrón especificado con una expresión regular, y en este caso lo utilizamos para eliminar tanto los comentarios, como la publicidad que estaban embebidas en la tabla.
Espero les sirva y puedan adaptarlo.

Quizá te interese :

Acerca del autor:

Deja un comentario


Licencia y uso

Las técnicas demostradas en los tutoriales pueden ser utilizadas sin ninguna limitación y tampoco es obligatorio dar una atribución.


Los textos, imágenes y tutoriales son propiedad de sus respectivos autores, nuestro contenido se encuentra bajo licencia Creative Commons Share-Alike.

Escribe algo para el sitio

El escribir un tutorial o un artículo, mandarnos un enlace para Ubicuos, no solamente es una forma de obtener publicidad, si no también de dar algo a la comunidad y nosotros te lo recompensamos con los premios del mes! Leer más de nuestras promociones

¿Sugerencias?

Este es TU sitio, si tienes sugerencias o ideas de cómo podemos mejorarlo para ti, ¡Por favor háznoslos saber!

Hacemos nuestro mayor esfuerzo en proporcionar un sitio útil y amigable y esperamos que disfrutes tu tiempo aquí.

Ayuda a Difundir

Te gusta Ubicuos?

Ve las formas en que nos puedes apoyar.

Apoyando a Ubicuos.com

Submit your linkClose

-->