Descargando gallerias de Televisa Deportes

Hola que tal después de un tiempo sin escribir entrada alguna, posteo algo que hice al  tomarme un rato libre.

Uno de mis pasatiempo es en ocasiones ver imágenes de muchachonas por la nube, debo confesar(con algo de vergüenza) que en ocasiones suelo visitar sitios como el de televisadeportes.com . Y en esta ocasión dejo un par de instrucciones del como descargar una galería completa de la pagina http://www.televisadeportes.com/fotogalerias/, esto a a través de un script al cual he denominado tIdiotizaGallery.py y que comparto:

http://gist.github.com/355585

Descarga las imágenes de una galería de televisadeportes.com

Descarga las imágenes de una galería de televisadeportes.com

Corrida de Ejemplo:

#1ro descargamos el script
wget http://gist.github.com/raw/355585/5977f5ba1cc95e9d548cd23e5566e01c540554a0/tIdiotizaGallery.py
#2do le damos permisos de ejecución al script
chmod +x tIdiotizaGallery.py
#3ro lo ejecutamos con la url de la galeria que queremos descargar
./tIdiotizaGallery.py URL_GaleriaTelevisaDeportes.com

Aqui les dejo el ejemplo en un video:

llegando mas lejos:

Para aquellos que no solo se conforman con el código si no también desean una explicación de su funcionamiento, ahí les va una breve explicación:

Resulta que televisadeportes.com al igual que muchas paginas ocupan JavaScript para hacer dinámicas las transiciones de sus imágenes en sus galerías, es nos da una gran ventaja ya  que al estar en un lenguaje de programación esto implica que la información se encuentra en un lenguaje de la forma ‘normal’ y puede ser fácilmente parseable.

Estudiando el code de televisa deportes:

Si observamos el código que nos devuelve la siguiente galería http://www.televisadeportes.com/fotos/bellezas-torneo-bicentenario-2010/18495 encontraremos que el código que nos interesa es :

<script language="javascript">
		var comment_tpl = "little";
		// Nombre de la Galería
		var gallery_name = 'Bellezas del Bicentenario J-13';
		// Imágenes de los Slides de la Fotogalería
		var gallery_images = new Array();
				gallery_images[0] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_01-1418e900-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[1] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_02-14a5026e-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[2] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_03-15377a86-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[3] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_04-15be0d62-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[4] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_05-163946ee-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[5] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_06-16bf186e-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[6] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_07-173f0628-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[7] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_08-17beed48-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[8] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_10-183bdeac-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[9] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_11-18c12062-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[10] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_12-1947dc6a-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[11] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_13-19b8f170-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[12] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_14-1a38cfe4-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
				gallery_images[13] =["http://i2.esmas.com/galerias/fotos/2010/4/bellezas_15-1abaacd0-90f9-102d-a60a-0019b9d5c8df.jpg","Foto: Mexsport Prohibida su reproducción total o parcial. esmas.com © 2010",""];
</script>

Como podemos observar las imágenes se encuentran en una variable la cual es un arreglo de datos, y cada una puede ser atrapada a través de la expresión regular(‘gallery_images\[([0-9]+)\] \=\[([^]]+)‘) de la linea 52 del script, por otra parte el nombre de la carpeta a crear y que sera la contenedora tendra por nombre el de la galería la cual es el valor de la variable gallery_name y para atrapar dicho valor hago uso de la función String.find(s) en las lineas 47,48 y 49. Para ser honesto creo que hubiera quedado mas elegante con una sola expresión regular, pero en fin así se me ocurrió en el momento de desarrollar el script y así quedo :¬(.

Version HTML del script

El script en python funciona perfectamente pues del análisis del caso del que se basa es correcto, sin embargo comprendo que muchos usuarios no estan familiarizados con python y el ejecutar el script les pueda resultar difícil(sobre todo a usuarios q usan distribuciones de S.O. donde python no viene instalado por defecto) . por esta razón paso el script a una versión html(con javascript) disponible:

Genera links de galerias d televisaDeportes y esMas.com

Genera links de galerias d televisaDeportes y esMas.com

http://gist.github.com/425877

 

Versión Bash

.

En bash creo que se puede hacer una implementación bastante simple, dejo aquí una nueva versión que agrego:

Versión en bash

Versión en bash

Anuncios

5 thoughts on “Descargando gallerias de Televisa Deportes

    • No se en que halla fallado el script o he probado con un par de galerias e incluso un par de compañeros de mi uni me han comentado que lo han utilizado, tal vez el detalle es que no le estas ingresando bien los palametros favor de enviarme mas detalles en que te fallo para poder ayudarte.

      Respecto a las galerias creo que seria ilegal el subirlas.

      Por otra parte prometo que en cuanto tenga tiempo trascribir el script para otro lenguaje(se me ocurre javascript).

  1. jajaja una cosa es ke no sirva, y otra ke no lo sepan utilizar ^^
    … acabo de probarlo (xD) y furula de maravilla jejeje
    Lo ke pasa es ke los niños de hoy día lo kieren todo masticado =S

    1 saludo man.

    • Un saludo acabo de publicar la versión en html con manejo del DOM con javascript bajo el mismo concepto de atrapar las URLs apatir de una expresión regular, Este deberia jarar perfectamente en navegadores q soporten JS >= 1.8 (como Firefox) ya que ocupo una función lambda (link)

  2. Vengo navegando online más de 4 horas hoy y no había
    encontrado ningún artículo interesante como el tuyo.
    Personalmente opino que, si todos los propietarios de webs y blogueros escribieran un buen contenido como éste, la
    red sería mucho más útil.
    Excepcionalmente bien escrito!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s