Introducción
Este artículo viene a ser, una segunda parte del artículo «Descargar las imágenes de una página web desde el terminal«, motivado por los comentarios de Francisco Javier, de Linuxman, en referencia a que cuando tratábamos de descargar imágenes que eran referencias relativas el script lanzaba un error, así que propuso una solución utilizando una combinación del citado script con wget.
Le he estado dando vueltas al asunto y he modificado nuevamente el script original para descargar imágenes de una página web , para incorporar una serie de características adicionales que no estaban en esta primera versión, y sobre todo corregir el problema de las referencias relativas.
Mejorando el script para descargar imágenes de una página web
Como indicaba la primera operación ha sido necesariamente solucionar el error detectad por Francisco Javier. Pero a la vez, he observado, tras realizar varias pruebas en diferentes sitios, que en algunos no realizaba ninguna descarga. Esto era así, porque o bien, el código html estaba en mayúsculas, con lo que el código de búsqueda no lo detectaba o bien, utilizaba simples comillas (‘) en lugar de dobles comillas («), arrojando el mismo problema, ninguna detección. De esta manera he corregido el código para que no tenga en cuenta si está en mayúsculas o minúsculas, y que además considere la posibilidad de las simples y dobles comillas.
Otro de los problemas que he detectado, es que si una imagen aparece 100 veces se descargará 100 veces. Así he añadido unas líneas de código para evitar que se produzca este efecto indeseado.
Por otro lado, si existen dos imágenes con el mismo nombre, una sobrescribía a la otra. Ahora, he rectificado esta situación, cambiando el nombre a la segunda imagen, para evitar este problema. Evidentemente esto trae un problema adicional, y es que al modificar el nombre se dificulta la localización de algún archivo, pero es un problema menor.
El siguiente punto a considerar, es que el script únicamente descargaba las imágenes que se veían en la página, y no las referencias. Me refiero, a que si en la página se veía una miniatura (thumbnail) de la imagen original, haciendo referencia a la imagen original, sólo se descargaba la miniatura. Con esta modificación, ahora se descargan tanto la miniatura como la imagen original. Además con lo indicado anteriormente, para evitar sobrescribir nombre, suponiendo que tanto la miniatura como la imagen original tuvieran el mismo nombre, una llevaría el nombre original y la otra llevaría un «_1», para distinguirla.
Por último y para acelerar la descarga de imágenes, e implementado descargas simultáneas, conforme utilizo en Picapy, pero limitado a 5, el número descargas simultáneas para evitar colapsar el sitio web. Es posible modificar este parámetro para aumentar el número de descargas, pero ten en cuenta lo indicado para evitar este problema.
Descargar e instalar
Después de tanto tiempo, he implementado una nueva versión de la aplicación y subido al repositorio. Te recomiendo leas el artículo «Descargar imágenes de una página web en Ubuntu»
Funcionamiento
El funcionamiento es exactamente igual que en la versión anterior:
imagedownloader2 www.elmundo.es
Gracias por las modificaciones 🙂 es una gran mejora con respecto a la primer versión.