Descargas de Manga con Python y Wget
August 27, 2008Gracias a unos amigos que tengo, me entero del sitio OneManga.com, en el cual se puede leer manga online. (Para quien no sepa, manga son cómics japoneses). Entre sus múltiples títulos tienen Naruto, Bleach, Death Note, School Days, etc. Lo único malo es que está en inglés y las imágenes no son de tan buena calidad como uno espera.
Suelo leer en el sitio, pero debido a puro interés, siempre quize tener algunos mangas en local, para leer y también para enseñarselos a mis amigos. (No siempre tengo Internet disponible). Por eso decidí buscar la forma de descargarme las imágenes del sitio.
Sorprendentemente el sitio enlaza a un .jpg sin más protección adicional y tiene enlaces que llevan a las siguientes páginas de un capítulo de manga. Todo esto en legible HTML. Es por eso que conseguí algun tutorial de expresiones regulares y decidí comenzar a programar un script. De nuevo, en Python.
El programa llamado OneManga Downloader, está bajo licencia MIT y se puede descargar de aquí.
Para usarlo hay que tener un par de requisitos: Hay que tener instalado wget, ya que usará a este programa para bajar las imágenes. Bajo Linux ya viene instalado, para Windows, deberán bajarlo de aquí.
Nuestro programa tiene 4 opciones que son:
- -gurl: Indica que se impriman las URL que se estan bajando.
- -wget: Descarga las URL
- -rpage: Descarga recursiva. Comienza desde una página hasta el final del capítulo.
- -mdata: Devuelve información del Manga, como su nombre y el capítulo actual y luego cierra la aplicación.
Para usarlo, deberán anteponer alguna de las opciones y luego pondrán la URL del capítulo del manga que quieran bajar. Un ejemplo:
one-manga-dw.py -gurl -rpage -wget http://www.onemanga.com/Bokurano/1/01/
Ahora solamente deberán esperar a que se bajen todos los episodios. En realidad, cuando programé la opcion -rpage, se bajaba todos los capítulos de todo el manga. No obstante le he desactivado esas características para no sobrecargar al servidor. Si desean tenerlas de nuevo, modifiquen el código fuente que les pongo.
Un problema de este programa es que pone todos los .jpg en la carpeta actual. No los ordena ni por Manga ni por capítulo. Agradecería a alguna persona para que haga eso o lo haré con cierta demora.
Finalmente si deseas leer manga en inglés, te recomendaría los siguientes:
- Bokurano
- Death Note
- Naruto (Esta de moda, aunque no me gusta… hay que ponerlo)
- Bleach (Ídem de Naruto)
Actualización (30 - 08 - 08): A raíz de las peticiones de un amigo que queria leer School Days y de un curso de compiladores, he pulido mucho más el script. Ahora soporta Descarga masiva. ¡Denle un titulo de manga y lo bajará hasta llegar al último capítulo! También le he agregado opciones de organización. Ordena los mangas en carpetas y por capítulos y fue totalmente reescrito orientado a objetos. (O casi a eso)
El nuevo OneManga Downloader puede descargarse de aqui. Al igual que el anterior, sigue bajo Licencia MIT.






Hola Bruno!
Aunque el manga en sí no me interesa demasiado, sí que me parece interesante tu script, ahora que estoy haciendo un programilla para parsear una web.
Un comentario sobre el script: en vez de parsear los argumentos manualmente, quizá te sería de utilidad usar el módulo optparse:
http://docs.python.org/library/optparse.html
Yo lo uso mucho, y es estupendo. Un saludo, y ánimo con el blog.
Comment by Iñaki Silanes — January 12, 2009 @ 9:25 am