Script en python para descargar imagenes de un sitio  

El problema.

Necesitaba descargar las imágenes de un sitio. Intenté de varias formas con resultados mixtos. Al principio usé wget, pero por más que le moví a los parámetros del comando descargaba de todo menos las imágenes. Sospecho que el problema fue que los archivos que quería descargar estaban en otros sitios conocidos por hospedar imágenes como Flickr o ImageShack. Era tiempo de ver otras opciones.

Posibles soluciones.

Primero intenté con DownThemAll un archifamoso complemento para firefox que permite descargar archivos de una página. Con la opción del filtro permite especificar únicamente las imágenes. Hace el trabajo, pero con demasiados clics de ratón. Lo dejé como plan B.

Image Harvester parecía ser justo lo que necesitaba. Lamentablemente resulto demasiado lento y de resultados dudosos. Después de 10 minutos jamás vi una imagen JPG en la enormidad de directorios que hizo el script. Afortunadamente inspeccionando su código surgío una idea.

ImageDownloader un script desarrollado por Lorenzo Carbonell. La idea era buena, buscar en una página todas las etiquetas img para luego descargarlas, simple y elegante. Sin embargo este script adolece de un gran problema, al encontrar la primera imagen con una referencia relativa ¡El programa truena! así que tampoco fue una solución.

ImageDownloader + wget

Primero quiero aclarar que mis habilidades con python son muy básicas, así que cualquier sugerencia será bienvenida. Modificando un poco el script de Image Downloader y encargandole la tarea de descargar los archivos a wget logré mi objetivo.

idw descargando imágenes

Todavía tiene problemas con rutas de imágenes relativas pero ya no truena y simplemente continua con la siguiente imagen. Todos los archivos los descarga en el directorio que se esta ejecutando.

Si lo necesitan o lo quieren modificar pueden descargar idw.

El siguiente paso será resolver las rutas relativas, o probablemente usar axel en lugar de wget para acelerar las descargas.

Archivado en: Linux y Software Libre, Python | Un comentario (1) | September 1, 2011

   Compartir   Print Friendly and PDF

Adivina el número en Python  

Mismo artículo en Linuxman R4 Adivina el número en Python

Cuando era niño mis padres me compraron una Commodore 16, leí el manual sobre como conectarla, la prendí y me apareció un mensajito que decía BASIC emoticon.

Era obvio que no podía hacer mucho con mi nuevo "juguete" sin aprender un poco sobre este lenguaje, así que poco tiempo después también me compraron el libro Basic para Niños.

En el aparecía un robotito llamado Arturo (creo que era por R2D2) que con ingenio y graciosas ilustraciones explicaba los vericuetos del lenguaje.

Basic para niños, Gracias a Miguel Ponce que me hizo el favor de mandarme la foto.

Uno de los programas era Adivina el número, supongo que es un programa muy popular para niños porque me lo acabo de encontrar nuevamente en el libroInvent your own computer games with Python.

Esta es mi versión del mismo programa según como lo recuerdo en aquel libro (aunque la memoria me puede fallar) escrito ahora en Python.

Adivina el número

# Juego de adivina el número.
import random
guessesTaken = 0
number = random.randint(1,100)
print(‘Hola !!!, estoy pensando un número del 1 al 100. Tienes 6 oportunidades para adivinarlo’)
while guessesTaken < 6:
    print(‘¿Cual es tu número?’) # 4 espacios indican un bloque
    guess = input()
    guess = int(guess)
    if guess >= 1 and guess <= 100:
        guessesTaken = guessesTaken + 1
        if guess < number:
            print(str(guessesTaken) +‘. Muy bajo’) # 8 espacios indican un segundo nivel de un bloque.
        if guess > number:
            print(str(guessesTaken) +‘. Muy alto’)
        if guess == number:
            break
    else:
        print(‘Tu número esta fuera de rango. Intenta con otro número.’)
       
if guess == number:
    guessesTaken = str(guessesTaken)
    print(‘Excelente !!! Adivinaste mi número en ‘ + guessesTaken + ‘ oportunidades!’)
   
if guess != number:
    number = str(number)
    print(‘No, El número que estaba pensando es el ‘ + number)
 

Parece mentira que un “juguete” haya sido tan influyente en mi vida. Mira Arturo… ¡Ahora en Python!

Archivado en: Linux y Software Libre, Lenguajes de programación, Python | (5) Comentarios | June 1, 2011

   Compartir   Print Friendly and PDF

3 consejos SEO para blogsome  

Mismo artículo en Linuxman R4 3 consejos SEO para blogsome

Estos 3 simples consejos SEO le pueden ayudar a mejorar la manera en que ven su sitio los buscadores. Esta enfocado a blogsome y a los Smarty tags que utiliza, pero se pueden adaptar a otros servicios de hospedaje.

El título.

Todo comenzó leyendo este artículo Common SEO Mistakes with Web Page Titles, entonces me di cuenta de que estaba cometiendo el error de incluir el nombre de mi blog en el título de las páginas, peor aún ¡En el comienzo!.

Para corregir esto modifique el tag Title para que quedara de la siguiente manera:

<title>{single_post_title prefix=''}{single_cat_title prefix=''}</title>

De esa manera queda solamente el título del artículo o de la categoría.

El META TAG Description.

Anteriormente tenía un contenido fijo como descripción de mi página. No no no , eso no se hace, es mejor tener una descripción personalizada para cada artículo.

Para eso aprovechamos el campo Excerpt que viene al comienzo, antes de escribir el artículo. Si se deja ese espacio en blanco, entonces toma los primeros párrafos del texto del artículo.

El código para blogsome quedaría así:

<meta name="description" content="{capture name=resumen}{the_excerpt}{/capture}{$smarty.capture.resumen|strip_tags}" />

Vean como primero “capturo” el valor del excerpt en la variable resumen, a esta variable le aplico un strip_tags para quitarle cualquier código html que inserta automáticamente wordpress.

Aquí pueden ver como poco a poco se puede apreciar este cambio en los listados de Google.

META TAG Description

El Canonical Link.

Según las propias palabras de Google, el canonical link “It’s a hint that we honor strongly” Specify your canonical, es opcional, pero se recomienda mucho ponerlo.

Un enlace se puede expresar de diferentes maneras y conducir al mismo destino (ej, www.midominio.com ó midominio.com ). El canonical link te permite aclarar cual es el enlace que prefieres.

Para incluirlo en blogsome agregamos esta línea entre los tags head.

<link rel="canonical" href="{bloginfo show='url'}{$smarty.server.REQUEST_URI}" />

Hace poco implemente estas modificaciones y poco a poco he visto un aumento en el número de visitas de mi página. Espero que a ustedes también les sean de utilidad estas recomendaciones.

Archivado en: Linux y Software Libre, Linuxman, Google, Lenguajes de programación, PHP | Comentarios (0) | August 24, 2010

   Compartir   Print Friendly and PDF