Bueno, hace tiempo lo hice y hoy creo que ya toca compartirlo, es un script hecho por mi(por lo cual quiero que quede claro, no será lo mejor del mundo, pero a mi me funciona) aprovechando que todas las paginas de imágenes tienen que tener ciertos patrones(sino imagínate que locura cambiar la ruta de al imagen para pasar a la siguiente imagen en vez de cambiar solamente la numeración).
De manera que aprovechando eso genere el siguiente .bash,su uso es tan simple como
bash script.bash urlEntera(hasta el .jpg,png...) dirAGuardar pagInicio pagFin extension offset
-urlEntera: para que coja toda al ruta con dirname
-dirAGuarda: lo que hace es crear el directorio y si existe no lo reescribe
-pagInicio: lo tipico..tenemos un 1.jpg o así pues ponemos el numero de inicio...0,1,...etc
-pagFin: como el anterior, lo normal es que acabe con una numeración
-extension: Los que veáis el bash vereis que por defecto si dais a ENTER cuando pregunte coge jpg, sino inicadlo
*podeis hacerlo ejecutable y tirar con ./script.bash y asi..pero eso ya queda a desición de cada uno
a continuación el código...(por supuesto para bash con linux)
#!/bin/bash
#@autor miniminiyo
#script para bajar imagenes
#echo 'Nueva estructura'
#echo 'url dir pagIni pagFin extension offset'
#echo "ej:http://omg.submanga.com/pages/1/232/2320043d7/1.jpg 232 1 31 pedira extension y #offset"
#echo "ej:http://omg.submanga.com/pages/1/232/2320043d7/1.jpg 232 1 31 jpg pedira offset"
#echo "ej:http://omg.submanga.com/pages/1/232/2320043d7/1.jpg 232 1 31 jpg fairytail-"
#LECTURA DE URL
if [ -z $1 ]; then
read -p "introduzca url " url #recibimos dato
url=$(dirname $url)
echo "La url es ${url}"
else
url=$(dirname $1) #si la hemos metido como primera entrada la cargamos de una desde ahi
fi
#NOMBRE DE CARPETA DONDE SE GUARDARA
if [ -z $2 ]; then
read -p "indique el nombre que quiere dar a la carpeta donde se guardaran los datos " nombre
else
nombre=$2
fi
#ESTA PARTE ES SIEMPRE IGUAL, ENTRAMOS EN EL DIRECTORIO
mkdir $nombre
cd $nombre
#INICIO DE DESCARGA DE PAGINAS
if [ -z $3 ] ; then
read -p "introduzca el inicio (default:0, pulse ENTER si acepta por defecto el inicio) " ini
#COMPROBAMOS ENTRADA DE INICIO
if [ -z "${ini}" ] ;then
ini=0 #¿0 o 1?
fi
#SEGUIMOS CON LA ENTRADA POR ARGUMENTO AL SCRIPT
else
ini=$3
fi
#FIN DE DESCARGA DE PAGINAS
if [ -z $4 ] ; then
read -p "introduzca el fin " fin
echo "se acabara en ${url}/${fin}.jpg"
else
fin=$4
fi
#LECTURA DE EXTENSION
if [ -z $5 ] ; then
read -p "introduzca la extension de la imagen(defaut:jpg, pulse ENTER si acepta por defecto la extension) " extension
#COMPROBAMOS QUE SE HA INTRODUCCIDO UNA EXTENSION
#si no se ha introducido la ponemos por defecto a jpg
if [ -z "${extension}" ] ;then
extension=jpg
fi
else #no esta vacio el $6
extension=$5
fi
#LECTURA DE OFFSET (like url/fairytail...etc..0.jpg) , el offset es hasta el numero
#solo se rompe en cosas como nombreNUMEROnombre.extension
#pero no he visto casos asi
if [ -z $6 ]; then
read -p "Introduzca la variacion hasta la parte numerica si existe, en caso contrario pulse ENTER" offset
#echo offset
if [ -z "${offset}"] ; then
offset=;
fi #fin de mira si hay offset o no
else
#¿calcularlo con cut -d0 sobre basename de url -s .jpg o algo asi?
offset=$6
fi
#fin si
echo "la extension indicada es ${extension}"
#creamos el fichero
touch urls.txt
#for i in $(seq $ini 1 $fin) #usar seq -w para indicar el numero de ceros a la izquierda de forma #'forzosa'
for i in {$ini..$fin} #esto ya coge siempre el mismo numero de zeros a la izquierda necesarios
do
echo "${url}/${offset}${i}.${extension}" >> urls.txt
echo
done
echo "fin operacion salida a texto"
#ahora descargamos
wget -c -i urls.txt
echo "fin de descarga de archivos"
echo "El nombre del directorio en que se guardo es ${nombre}"
#HASTA AQUI EL SCRIPT, CUALQUIER MEJORA COMENTADLA, pero antes probadla en #vuestro equipo ;)
De manera que aprovechando eso genere el siguiente .bash,su uso es tan simple como
bash script.bash urlEntera(hasta el .jpg,png...) dirAGuardar pagInicio pagFin extension offset
-urlEntera: para que coja toda al ruta con dirname
-dirAGuarda: lo que hace es crear el directorio y si existe no lo reescribe
-pagInicio: lo tipico..tenemos un 1.jpg o así pues ponemos el numero de inicio...0,1,...etc
-pagFin: como el anterior, lo normal es que acabe con una numeración
-extension: Los que veáis el bash vereis que por defecto si dais a ENTER cuando pregunte coge jpg, sino inicadlo
*podeis hacerlo ejecutable y tirar con ./script.bash y asi..pero eso ya queda a desición de cada uno
a continuación el código...(por supuesto para bash con linux)
#!/bin/bash
#@autor miniminiyo
#script para bajar imagenes
#echo 'Nueva estructura'
#echo 'url dir pagIni pagFin extension offset'
#echo "ej:http://omg.submanga.com/pages/1/232/2320043d7/1.jpg 232 1 31 pedira extension y #offset"
#echo "ej:http://omg.submanga.com/pages/1/232/2320043d7/1.jpg 232 1 31 jpg pedira offset"
#echo "ej:http://omg.submanga.com/pages/1/232/2320043d7/1.jpg 232 1 31 jpg fairytail-"
#LECTURA DE URL
if [ -z $1 ]; then
read -p "introduzca url " url #recibimos dato
url=$(dirname $url)
echo "La url es ${url}"
else
url=$(dirname $1) #si la hemos metido como primera entrada la cargamos de una desde ahi
fi
#NOMBRE DE CARPETA DONDE SE GUARDARA
if [ -z $2 ]; then
read -p "indique el nombre que quiere dar a la carpeta donde se guardaran los datos " nombre
else
nombre=$2
fi
#ESTA PARTE ES SIEMPRE IGUAL, ENTRAMOS EN EL DIRECTORIO
mkdir $nombre
cd $nombre
#INICIO DE DESCARGA DE PAGINAS
if [ -z $3 ] ; then
read -p "introduzca el inicio (default:0, pulse ENTER si acepta por defecto el inicio) " ini
#COMPROBAMOS ENTRADA DE INICIO
if [ -z "${ini}" ] ;then
ini=0 #¿0 o 1?
fi
#SEGUIMOS CON LA ENTRADA POR ARGUMENTO AL SCRIPT
else
ini=$3
fi
#FIN DE DESCARGA DE PAGINAS
if [ -z $4 ] ; then
read -p "introduzca el fin " fin
echo "se acabara en ${url}/${fin}.jpg"
else
fin=$4
fi
#LECTURA DE EXTENSION
if [ -z $5 ] ; then
read -p "introduzca la extension de la imagen(defaut:jpg, pulse ENTER si acepta por defecto la extension) " extension
#COMPROBAMOS QUE SE HA INTRODUCCIDO UNA EXTENSION
#si no se ha introducido la ponemos por defecto a jpg
if [ -z "${extension}" ] ;then
extension=jpg
fi
else #no esta vacio el $6
extension=$5
fi
#LECTURA DE OFFSET (like url/fairytail...etc..0.jpg) , el offset es hasta el numero
#solo se rompe en cosas como nombreNUMEROnombre.extension
#pero no he visto casos asi
if [ -z $6 ]; then
read -p "Introduzca la variacion hasta la parte numerica si existe, en caso contrario pulse ENTER" offset
#echo offset
if [ -z "${offset}"] ; then
offset=;
fi #fin de mira si hay offset o no
else
#¿calcularlo con cut -d0 sobre basename de url -s .jpg o algo asi?
offset=$6
fi
#fin si
echo "la extension indicada es ${extension}"
#creamos el fichero
touch urls.txt
#for i in $(seq $ini 1 $fin) #usar seq -w para indicar el numero de ceros a la izquierda de forma #'forzosa'
for i in {$ini..$fin} #esto ya coge siempre el mismo numero de zeros a la izquierda necesarios
do
echo "${url}/${offset}${i}.${extension}" >> urls.txt
echo
done
echo "fin operacion salida a texto"
#ahora descargamos
wget -c -i urls.txt
echo "fin de descarga de archivos"
echo "El nombre del directorio en que se guardo es ${nombre}"
#HASTA AQUI EL SCRIPT, CUALQUIER MEJORA COMENTADLA, pero antes probadla en #vuestro equipo ;)
No hay comentarios:
Publicar un comentario