Actualizado 26 de Julio de 2005
A la vista de que nadie se impresionó con los scripts para ajustar los subtítulos de las películas ni para renombrar canciones, voy a poner un ejemplo mucho más aplicado donde ser un power-user da todos sus frutos: bajarse porno.
Supongo que todos vosotros, pajilleros y onanistas experimentados, conoceréis montones de páginas en las que te puedes bajar videos guarros de muestra que duran un par de minutos. Alguno sabiamente dijo una vez "pues yo voy cambiando la dirección, me los bajo todos, y así tengo una película más o menos completa". Esa es la forma "manual" de hacerlo, pero claro, nosotros tendremos las manos ocupadas en otras cosas y no podemos permitirnos perder el tiempo con esas menudeces.
Aquí es cuando todos nos acordamos del anuncio ese de terraadeeseeleplús donde un chaval dice "y así podré estudiar el doble de rápido". Que no, niño, que no vas a engañar a tu viejo, con eso lo que quieres es hacerte las pajas en la mitad de tiempo. Pero claro, eso sólo sirve para eyaculadores precoces, que entre que se bajan un video y el siguiente ya se han corrido. Nosotros queremos más. Necesitamos montones de videos que se vayan bajando en tiempo real para poder hacernos nuestra buena paja (la imaginación ya pasó a mejor vida).
Para poder seguir este cursillo, necesitamos las siguientes herramientas: wget y python. Si usas linux, probablemente ya tengas instalado todo lo necesario (prueba a escribir en la consola los comandos wget y python respectivamente, a ver si sale algo)... si no los tienes, puedes usar tu gestor de paquetes favorito para instalarlos. Si estás en Windows, puedes usar cygwin o bien las versiones nativas... la instalación de python es realmente sencilla y no la voy a comentar, para wget puedes mirar en esta página:
http://gnuwin32.sourceforge.net/packages/wget.htm
Vamos al turrón... lo primero es localizar una página en la que haya videos de esos de demostración. En http://www.petardas.com tenemos un montón de enlaces útiles. Una vez que tenemos una, hay que inspeccionar las urls de los videos. Necesitamos que sigan algún patrón, si es numérico y fácil mejor que mejor.
Lo siguiente que haremos es programar un script que nos genere todas las direcciones de los videos, que utilizaremos para que wget los descarge por nosotros.
Veamos algunos ejemplos:
Creamos el script "genera.py":
base = "http://freempegs.aebn.net/anal_"
for i in range(1,46):
for j in range(1,6):
print base + str(i).zfill(4) + "_" + str(j) + ".mpg"
Lo ejecutamos, y redirigimos la salida a un fichero "lista.txt":
$ python genera.py > lista.txt
Ahora, le decimos a wget que nos baje todos los ficheros a los que hace referencia "lista.txt":
$ wget -i lista.txt
Et voi la! Tenemos un puñado de videos de chicas siendo sodomizadas por fornidos mozos.
Si toda esta perversión no te ha parecido suficiente, tenemos un ejemplo un poco más elaborado... ahora el problema radica en que hay varios archivos que se llaman igual, pero están en rutas distintas. La solución pasa por ejecutar wget indicándole también el nombre del archivo local donde se guardará lo que bajemos. Para ello, ahora el script no tendrá únicamente una lista de urls, sino el comando completo para invocar a wget:
El archivo "genera.py"
base = "http://hardcoremovieserver.com/galls/"
for i in range(151,200):
for j in range(1,4):
print "wget " + base + str(i).zfill(3) + "/" + str(j) + ".mpg -O " + str(i).zfill(3) + "_" + str(j) + ".mpg"
Ahora hay que currárselo un poquito más, y pasarle todo el resultado del programa al intérprete de comandos:
$ python genera.py | bash
Y hale, a ver qué sale... aquí tenemos otro problema añadido, y es que algunos de los ficheros que nos tanto nos gustaría bajar no existen, y en su lugar se baja el archivo "missing.html" (o similar), con el nombre que le tocase al fichero bueno. Para hacer una criba posterior, podemos filtrarlos por tamaño con un
$ du -sh * | sorto con
$ file * | sort
¿Que también queremos deshacernos automáticamente de los que se hayan bajado y sean páginas web en lugar de vídeos? no problemo, podemos hacerlo con una sencilla línea de comandos:
$ file * | grep HTML | awk -F: '{print "rm " $1}' | bash
Sí, es la rehostia, lo sé...
En fin, todo eso para los que digan que Linux (o cualquier Unix) no tiene ventajas sobre Windows (al menos sin Cygwin hay muchas cosas que no se pueden hacer...).
Ah, y por último, si a alguno después de esta maravillosa lección de scripting le interesa ver los videos, puede usar el xine o el mplayer.
Actualización
Algo más sencillote, aunque no tan flexible, es usar el wget directamente con estas opciones:
$ wget --recursive --accept="*.mpg" http://www.hardcorepetites.net/a/24l/index67.htmlY se baja todos los videos de la página... normalmente no funciona bien a múltiples niveles porque los cabrones de los pornógrafos no tienen activado el listado de directorios...
Yo para el primero haria:
ResponderEliminarfor i in `seq -w 1 46` ; do wget http://freempegs.aebn.net/anal_00$i.mpg ; done
Y para el segundo algo similar, aunque el filtrado posterior no lo pasaria a awk, sino a xargs, quedaria tal que asin:
file * | grep HTML | cut -d ":" -f 1 | xargs rm
La ventaja de xargs es que hace una llamada a rm con el maximo numero de parametros que acepta la linea de comandos (2K o 4K de texto, no recuerdo) en lugar de llamar a rm para cada fichero, esto es mucho mas rapido.
La ventaja de ver el codigo es que alguien lo puede hacer mas eficiente... ;)
A disfrutar.
--
Jorge Nerin
¿"Et voi la!"? Qué hostión te metía...
ResponderEliminar"¿"Et voi la!"? Qué hostión te metía..." Ja ja ja ja ja, ahora recuerdo porque os leía. La gente me mira mal.
ResponderEliminarTu padre no lo dice, pero me mira mal...
ResponderEliminarFreeman dijo:
ResponderEliminarQué hostión te metía...
J2ME fucking master dijo:
Ja ja ja ja ja, ahora recuerdo porque os leía. La gente me mira mal.
En efecto. Poner tres tildes en una frase de cuatro palabras: unos añitos de educación primaria. Que las tres tildes sean correctas: no tiene precio.
Cosas así no las encontrarás en otros weblogs... (hablar sobre porno, sí; renombrar archivos porno ya es más improbable)
No me impresiona. Hacer eso de los agentes inteligentes, curries, fraggels y toda la pesca para que busque el porno y lo baje, eso si me impresiona. Me comprometo a alojar un agente y alimentarle bien.
ResponderEliminarJodio Camacho. Dolor, mucho dolor.
ResponderEliminarMe alegra tener público como Jorge Nerin para que comente las cosas y las mejore!!! :D
ResponderEliminarUna duda ¿lees regularmente mi weblog o sólo cuando hablo de scripting? XD
La verdad es que tantas formas distintas de hacer las cosas sólo sirven para despistar al personal... por ejemplo, Python y la shell son lenguajes tremendamente sencillos, y todas las cosas que decimos aquí se pueden hacer de cien mil maneras distintas.
Hay un lenguaje al que le he cogido bastante tirria por esto precisamente: Ruby. Algún día hablaremos mal de él :-)
Lo del agente buscador de porno, tenía su gracia, deberíamos colgarlo en SourceForge a ver qué pasa... XD
No se supo apreciar la belleza de esa maravillosa pieza de software.
Jajaja, lo leo regulamente, pero la necesidad de comentar es mas fuerte en los post de scripting, quizas es porque trabajo a diario zarzeando con perl, bash y php.
ResponderEliminarBueno, el inutil de antes que lo lee y no firma soy yo.
ResponderEliminarHasta la proxima.
--
Jorge Nerin
El porno... aimmmmms, que gran concepto.
ResponderEliminarMi pequeña aportación para explotar petardas.com:
=======================================================
#!/bin/bash
#Recuperamos la lista de páginas con vídeos
lista=`wget -q -O - http://www.petardas.com/videos | grep "pagina=http://" | sed -e 's/.*pagina=\(.*\)><img.*img.*/\1/'`
i=0
for url in $lista
do
mkdir $i
wget --recursive --accept="*.mpg,*.avi,*.wmv" -nd -q -P $i -l 1 $url
echo -n .
i=`expr $i + 1`
done
=======================================================
Guarda esto en un ficherito, ajustas permisos, ejecutas y obtendrás una maravillosa colección de videos. Tendrás un directorio por mini-colección. Para verlos todos seguiditos sin soltar las manos de donde las tengas:
mplayer `find | egrep "*\.mpg|*\.avi|*\.wmv"`
Ale ale
DIOOOOOOOOOOOOOOOOOOOOOOOOOOOS!!! ESO ERA LO QUE ESTABA BUSCANDO YO!!! :-D
ResponderEliminarjoder, si es que el desarrollo colaborativo funciona de verdad!!! uno pone las ideas y otros trabajan...
jo jo jo... la que me voy a pegar de bajar porno... ahora mismo lo pruebo... MUUUHAHAHAHAHAHAHA!!!
por cierto... le veo lagunas al plan... a mí no me interesa que se baje los videos de transexuales, amas de casa, peludas, gordas, "raro", etc. que luego me da un bajón que no veas en medio de la gayola y me salen granos pajeros ¿hay alguna forma automática de filtrarlos sin necesidad de pasar por el mal trago de verlos?
ResponderEliminaralguien me ha comentado que podríamos pegar todos los cortos y venderlos como vídeos largos
Mendua decepción, tío, nos lo habías vendido como la panacea del porno barato y al final no se han bajado ni una docena de cortos... creo que el problema está en los cargadores javascript de redirección que usan en petardas. Habrá que hacer un agente de búsqueda... o volver a los fraggles y los curris... pero nunca volver al kiosko a por una revista guarra!
ResponderEliminarOh amigo fortran,
ResponderEliminartras probar (una vez más) mi maravillosísimo script insisto en que su funcionamiento es correcto, de hecho he bajado exactamente 270 vídeos desde un sitio donde no debería conectarme a este tipo de páginas (aunque otros vean las pelis guarras del winamp en vivo). Lo he parado por vergüenza pero la eficacia ha quedado probada (y la eficiencia del sitio, por enésima vez).
Las redirecciones de petardas son evitadas por el script buscando directamente en las páginas. Los enlaces en petardas cumplen el siguiente patrón:
href=http://XXX.XXX.XXX.XXX/ver.php?vids=pozi&pagina="URL de la página porno buena"
Con el 'sed' de unix hago el filtrado y me quedo con la "URL de la página porno buena"
Sobre lo de unir los vídeos y hacer una película entera, todo se andará, pero no habría argumento y eso es fundamental en este tipo de películas.
¿Que te jodería ver cortos de transexuales, amas de casa o incluso "raro"? En fin, pensaba que eras menos escrupuloso, veremos si podemos hacer una enhanced version, pero no prometo nada. Desde aquí pido a los creadores de petardas que creen una api o un servicio web para facilitarnos este tipo de cosas, que estamos perdiendo tiempo de pajas coño.
pues no sé, a lo mejor tiene algo que ver esto:
ResponderEliminar[fortran@johnny 13]$ ./dale.sh
...........................................................................................................wget: opción inválida -- >
Modo de empleo: wget [OPCIÓN]... [URL]...
Ejecute `wget --help' para obtener la lista de opciones.
.........................................................
revisa el script, que aquí algo falla...
Para que quede constancia indica aqui y delante de todos que el script funciona.
ResponderEliminar