Seminario de heramientas básicas (2/2)

Bueno seguimos con este seminario del infierno y ahora viene el wget

Vamos a ver un ejemplo de wget:

wget -O archivo.html http://www.marca.es

wget lo que hace es descargarse la página que le hemos puesto (http://www.marca.es) en el archivo (archivo.html)

Si no utilizamos el -O se guarda en un archivo que viene indicado por el url y llega hasta el primer & de la url

http://www.marca.com/futbol.html?cid=MENUDES3601&s_kw=futbol

se guarda en el archivo:

futbol.html?cid=MENUDES3601

Esto te permite varias posibilidades por ejemplo este problema:


Descarga las imágenes de la página http://sim.nisu.org/arch/planoCS/. Observa que contiene imágenes cuyas URL son relativas a la página y los nombres son del tipo ij.jpg para i en [ a .. m ] y j en [ 1 .. 7 ].

Con un simple bucle podemos descargar todas estas imágenes:

for (( i=1 ; i<8 ; i++ )); do
for j in a b c d e f g h i j k l m; do
wget -O $j$i.jpg http://sim.nisu.org/arch/planoCS/$j$i.jpg;
done;
done


Dada la siguiente página, supón que la abres con un navegador y piensa en lo que el navegador hace si envías el formulario.

<form action=arch/elphp.php method=get>
Dame el código: <input name=codig><br>
Dame el valor: <input name=valor><br>
<input type=submit value=mandar>
</form>
 
SOLUCIÓN: 
 
i=1;while [ $i -lt 501 ];do
wget -O -'https://sim.nisu.org/arch/elphp.php?codig=codigo&valor=random(1,500)'
i=$(($i+1))
done

Ahora viene la joya de la corona

Ejercicio para hackers: Observa la página siguiente. Consigue introducir los códigos de 1 a 50 con un valor numérico aleatorio mediante un script

Solución:

wget -o- --keep-session-cookies --save-cookies=/home/david/.moziefault/cookies.txt http://sim.nisu.org/arch/gyp.php

i=1; while [ $i -lt 2 ];do  

k=$(awk -F ":" '{print $4}' gyp.php | awk '{print $1}')

wget --load-cookies=/home/david/.mozilla/firefox/ow75glpi.default/cookies.txt -q -O - "http://sim.nisu.org/arch/gyp.php?codig=random(1,50)&valor=111&chal=$k"

i=$(($i+1))

rm gyp.php

done

Que textaco ehhh.

Vamos a explicarlo paso a paso. Donde se almacena la información donde nos dice que nosotros somos los que accedemos a la pagina y el numero que nos corresponde. Lo guardamos en las cookies de sesión así que tenemos que bajarnos el código html y guardas las cookies. Todo eso lo podemos hacer en una orden

wget -o- --keep-session-cookies --save-cookies=/home/david/.moziefault/cookies.txt http://sim.nisu.org/arch/gyp.php

perfecto ahora tenemos el codigo html guardado en gyp.php y las cookies guardadas en  /home/david/.moziefault/cookies.txt 

Ahora necesitamos descubrir el numero que hemos de poner a partir del código html así que dividimos el código por : y seleccionamos el que guarda el numero. Después seleccionamos solo el primer numero y lo guardamos en la variable k

k=$(awk -F ":" '{print $4}' gyp.php | awk '{print $1}')

Ahora solo hemos de subir el resultado cargando las cookies

wget --load-cookies=/home/david/.mozilla/firefox/ow75glpi.default/cookies.txt -q -O - "http://sim.nisu.org/arch/gyp.php?codig=random(1,50)&valor=111&chal=$k"

Muy bien esto es lo básico ahora nos lo complican algo más y es que tenemos que poner un código aleatoria entre o y 50 por lo que necesitamos hacer un bucle y utilizar un numero aleatorio.

De ahi el while y el random.

Y así de sencillo es verlo ahora pero a mi me costó sobre 3 horas pensar este ejercicio entero y que saliese bien






Comentarios

Entradas populares de este blog

Opinión sobre MIT App Inventor vs Android Studio

Node.js is loading...

Atasco solucionado (sed)