Eres libre de descargar la herramienta y utilizarla para tus fines privados. Si modificas este programa y quieres compartirlo, haz un fork. Debe incluir un enlace al repositorio original en la parte superior como se muestra aquí: Repositorio original: [enlace]
El programa avanzado te permite controlar más su comportamiento y editar su configuración. Para la mayoría de usuarios el estándar es suficiente. La versión avanzada del programa se encuentra dentro del directorio 'advanced_version' de este repositorio.
Estoy creando esta aplicación para aprender algo de Python y tenerla como medio de respaldo para la descarga de tarjetas por lotes. Tengo mi propio complemento de navegador que escribí en JS y que funciona bien, pero estoy trabajando en esta solución en caso de que mi complemento roto deje de funcionar. Además, no publicaré el código fuente de ese complemento porque está hecho solo para mí, por lo que está un poco roto, pero no me molesto en arreglarlo. Y así comienza este proyecto. El plan es utilizar Selenium y realizar incluso más funciones que las que puede ofrecer el complemento del navegador actual. El complemento funcionó haciendo clic en los botones de descarga en orden, esperando una cantidad de tiempo codificada hasta que finalice la descarga (para evitar descargas múltiples, ya que al sitio no le gustó eso), luego haciendo clic en el botón Siguiente para pasar a la página siguiente y repetir . Ahora quiero crear otra solución que permita al usuario crear archivos de configuración para automatizar aún más el proceso de descarga. Veré adónde me llevará.
Ya estoy viendo que escribir JS Extension para ese propósito fue súper rápido, menos complicado, pero definitivamente ambas soluciones tienen sus pros y sus contras. (Probablemente los enumeraré más adelante)
El software está en desarrollo, por lo que se recomienda leer los comentarios del código dentro de los archivos .py para comprender mejor su funcionamiento interno.
el programa está hecho para db.bepis.moe, por lo que si no está seguro de qué valor puede ingresar en algunos campos -> vaya al sitio web -> seleccione el juego -? revisa lo que puedes seleccionar y/o ingresar en el formulario de búsqueda
Selecciona el tipo de juego
Seleccione el tipo de descarga -> "básico" permite ingresar solo "Nombre" y/o "Etiqueta" para buscar -> "avanzado" - permite configurar todos los parámetros de búsqueda disponibles para el juego seleccionado (trabajo en progreso en ese)
Ingrese el valor para cada campo solicitado o haga clic en "Ingresar" para obtener el valor predeterminado.
Espere a que finalice la descarga.
Se carga la página del juego seleccionado y el selenio completa el formulario.
Después de hacer clic en el botón de búsqueda, el programa espera 5 segundos para que se cargue el sitio web.
Descargará la tarjeta cada 5 segundos, para evitar descargas múltiples, ya que al sitio web no le gustan las descargas múltiples. (Algunas tarjetas pueden tener más de 25 MB, por eso es mejor darle más tiempo que menos) //Puedo crear una función que verifique si la descarga de la tarjeta ha finalizado en lugar de pasar a la siguiente tarjeta en el futuro.
Si la página tenía menos de 24 tarjetas, es la última página (o solo una) -> Descarga finalizada
Si la página tiene 24 tarjetas pero el botón "Siguiente" está deshabilitado -> Descarga finalizada
Si el botón está activo -> cambiar URL y cargar página -> comenzar a descargar tarjetas, hasta que haya menos de 24 tarjetas en la página o el botón "Siguiente" esté desactivado.
Algunas tarjetas pesan mucho, incluso más de 25 MB; si su conexión a Internet es lenta, CAMBIE EL TIEMPO DE ESPERA entre descargas de tarjetas a incluso 20 segundos.
Las funciones SLEEP correspondientes en el código tienen comentarios, rodeados por #. Tal como se muestra a continuación:
###################################### #BELOW TIME FOR CARD TO BE DOWNLOADED# ######################################
+El problema conocido es -> malwarebytes matará el programa si lo ejecuta desde PyCharm, y posiblemente de cualquier otra forma. Desactívelo e intente usarlo nuevamente. // Le gusta matar scripts de Python.
Para estar seguro de que el programa descargó todas las tarjetas, puede usar esta fórmula: ((número de páginas) - 1) * 24 + (número de tarjetas en la última página)
para 7 páginas, cuando la última contiene 4 tarjetas, se vería así: 6*24+4 = 148 tarjetas
para usuarios menos avanzados: no utilice este script para descargar 'contenido en vivo' -> si alguien carga nuevas tarjetas en el sitio y cumple con las condiciones para su descarga, el script no las descargará. Esa situación cambiará el orden de las tarjetas y puede llevar a que se omitan algunas tarjetas en una búsqueda muy activa o en una descarga duplicada. Imagine que hay 30 tarjetas en el sitio web: 1 página de 24 tarjetas y 6 tarjetas en la página 2. Comienza a descargar y en los primeros segundos alguien carga 3 tarjetas más. La página puede contener 24 cartas, por lo que las últimas 3 cartas se mueven a la página 2, donde ahora hay 9 cartas. Pero el script no lo sabe: su navegador tiene una página cargada antes de eso. Tiene la versión de la web que no tiene las tarjetas movidas. El guión cambia de página a la siguiente (página 2). Descargas esas 9 tarjetas, incluidas 3 tarjetas que ya tienes.