Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

UN PEQUEÑO SCRIPT CON WGET

158 views
Skip to first unread message

rantis cares

unread,
Oct 31, 2010, 5:20:01 PM10/31/10
to
Que tal amigos listeros:

Vaya que he estado trabajando bastante con scripts, me gusta hacerlo para ver la potencia de nuestro amado linux.

Hace tiempo que uso wget para descargar algunas cosas. Una de las bondades de wget es que puede descargar algunos archivos aunque la pagina tenga un acceso restringido mediante un user y su pass. Claro, debemos tener esta información, ahora viene aqui la pequeña cuestion.

Quiero entrar a una web de la cual tengo un usuario y mi password, en esa pagina tengo un archivo en excel xls que quiero descargar, pero para descargarlo, necesito dar click a algunos botones que se encuentran diseñados en javascript.

¿Existe alguna manera de "presionarlos" mediante wget y así ejecutar el informe que necesito en xls y bajarlo diaramente mediante cron?

Gracias

Rantiscares

David Francos (XayOn)

unread,
Oct 31, 2010, 5:30:01 PM10/31/10
to
On Sun, Oct 31, 2010 at 03:16:29PM -0600, rantis cares wrote:
> Que tal amigos listeros:
>
> Vaya que he estado trabajando bastante con scripts, me gusta hacerlo para
> ver la potencia de nuestro amado linux.
>
> Hace tiempo que uso wget para descargar algunas cosas. Una de las bondades
> de wget es que puede descargar algunos archivos aunque la pagina tenga un
> acceso restringido mediante un user y su pass. Claro, debemos tener esta
> informaci�n, ahora viene aqui la peque�a cuestion.

>
> Quiero entrar a una web de la cual tengo un usuario y mi password, en esa
> pagina tengo un archivo en excel xls que quiero descargar, pero para
> descargarlo, necesito dar click a algunos botones que se encuentran
> dise�ados en javascript.
>
> �Existe alguna manera de "presionarlos" mediante wget y as� ejecutar el

> informe que necesito en xls y bajarlo diaramente mediante cron?
Hazte un script en perl o python, busca mecanize.
> Gracias
>
> Rantiscares


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/20101031212...@xayon.net

rantis cares

unread,
Oct 31, 2010, 6:00:02 PM10/31/10
to
David:

Agradezco la información que me has dado, he visualizado algunas webs sobre mechanize y me parece en extremo interesante, pero siento que porgramar en phyton o perl combinado con mechanize, se me hace que es matar un conejo con un cañon.

¿Tu crees que sea la unica manera?. Digo, para ser honestos estoy buscando hacer las cosas muy sencillas, claro que si no existiera otra manera, entonces tendré que aplicarlo.

Gracias

Rantiscares

Alberto Luaces

unread,
Nov 1, 2010, 3:50:01 AM11/1/10
to
"David Francos (XayOn)" writes:

> On Sun, Oct 31, 2010 at 03:16:29PM -0600, rantis cares wrote:
>> Que tal amigos listeros:
>>
>> Vaya que he estado trabajando bastante con scripts, me gusta hacerlo para
>> ver la potencia de nuestro amado linux.
>>
>> Hace tiempo que uso wget para descargar algunas cosas. Una de las bondades
>> de wget es que puede descargar algunos archivos aunque la pagina tenga un
>> acceso restringido mediante un user y su pass. Claro, debemos tener esta
>> informaci�n, ahora viene aqui la peque�a cuestion.
>>
>> Quiero entrar a una web de la cual tengo un usuario y mi password, en esa
>> pagina tengo un archivo en excel xls que quiero descargar, pero para
>> descargarlo, necesito dar click a algunos botones que se encuentran
>> dise�ados en javascript.
>>
>> �Existe alguna manera de "presionarlos" mediante wget y as� ejecutar el
>> informe que necesito en xls y bajarlo diaramente mediante cron?
> Hazte un script en perl o python, busca mecanize.

El `mechanize' de Perl o Python no entiende el Javascript. Como dicen en

http://stackoverflow.com/questions/1270274/mechanize-python-click-on-a-javascript-type-link

a veces es más fácil emular lo que hace el código de Javascript que
intentar pinchar los botones.

--
Alberto


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/8739rlc...@eps142.cdf.udc.es

Camaleón

unread,
Nov 1, 2010, 7:20:02 AM11/1/10
to
El Sun, 31 Oct 2010 15:16:29 -0600, rantis cares escribió:

(...)

> Quiero entrar a una web de la cual tengo un usuario y mi password, en
> esa pagina tengo un archivo en excel xls que quiero descargar, pero para
> descargarlo, necesito dar click a algunos botones que se encuentran
> diseñados en javascript.
>
> ¿Existe alguna manera de "presionarlos" mediante wget y así ejecutar el
> informe que necesito en xls y bajarlo diaramente mediante cron?

Pon la URL de ejemplo o sube a www.pastebin.com el código de la página de
la que quieres automatizar la descarga del archivo.

Saludos,

--
Camaleón


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/pan.2010.11...@gmail.com

rantis cares

unread,
Nov 1, 2010, 10:30:02 AM11/1/10
to
Camaleon:

El codigo se encuentra en http://pastebin.com/EJvtpdxs

Por cierto, yo le llame "presionar" botones, pero ¿Cuál es el nombre tecnico que se usa para hacer esto?.

Gracias

Camaleón

unread,
Nov 1, 2010, 11:00:02 AM11/1/10
to
El Mon, 01 Nov 2010 08:25:40 -0600, rantis cares escribió:

> El 1 de noviembre de 2010 05:13, Camaleón escribió:
>
>> El Sun, 31 Oct 2010 15:16:29 -0600, rantis cares escribió:
>>
>> (...)
>>
>> > Quiero entrar a una web de la cual tengo un usuario y mi password, en
>> > esa pagina tengo un archivo en excel xls que quiero descargar, pero
>> > para descargarlo, necesito dar click a algunos botones que se
>> > encuentran diseñados en javascript.
>> >
>> > ¿Existe alguna manera de "presionarlos" mediante wget y así ejecutar
>> > el informe que necesito en xls y bajarlo diaramente mediante cron?
>>
>> Pon la URL de ejemplo o sube a www.pastebin.com el código de la página
>> de la que quieres automatizar la descarga del archivo.

> Camaleon:


>
> El codigo se encuentra en http://pastebin.com/EJvtpdxs

O.k... parece que sirve para validar el inicio de sesión de un usuario
¿estás seguro de que ese es el código del botón que tienes que pulsar
para acceder al documento?

Bueno, si ese ese el caso, podría probar con el parámetro "--post-data"
de wget que sirve para el envío de datos a los formularios. Si la página
usa el método POST usual, no tendrás problema. Si utiliza peticiones
dinámicas (xmlhttprequest) lo tendrás más complicado.

Y me parece que hace uso del segundo método. Lo digo porque está
encapsulando el script entre "//<![CDATA[" que indica presencia de datos
en XML :-/

> Por cierto, yo le llame "presionar" botones, pero ¿Cuál es el nombre
> tecnico que se usa para hacer esto?.

Pues... que yo sepa lo botones se "pulsan" o "presionan", así que me
parece que no hay más tecnicismo que ese :-)

Bueeeno, sí, podría llamarse "paso de parámetros" :-P

rantis cares

unread,
Nov 1, 2010, 12:00:02 PM11/1/10
to
Camaleon:

Bueno, en realidad yo te llamaría Pulpo, porque no se como le haces para responder tantos y tantos mensajes. Aunque realmente no solo es escribir, sino lo que sabes escribir. Yo no se cuando duermes...

Al tema que viene, en el post anterior, me parece que no inclui el codigo del boton enviar y aqui lo pongo.

http://pastebin.com/S48NGfq9

Ya comence a investigar con wget para realizar la descarga, google es un buen buscador...

Gracias

rantis cares

unread,
Nov 1, 2010, 12:30:02 PM11/1/10
to
Lista:

Parece ser que encontre una buena respuesta, parece que no es con wget

----INICIA----
3.6 Does Wget understand javascript?

Wget doesn't feature javascript support and is not capable of performing recursive retrieval of URLs included in javascript code.

In fact, it is impossible to extract URLs from javascript by merely parsing it. Web clients need to actually execute it, and Wget can't do that since it's not a GUI browser.

However, some heuristics could be applied to javascript source code to extract URLs from certain often-encountered javascript patterns, such as rollover image changes. This feature will probably added in a later version of Wget.

----TERMINA----

Camaleón

unread,
Nov 1, 2010, 1:50:01 PM11/1/10
to
El Mon, 01 Nov 2010 10:26:27 -0600, rantis cares escribió:

> Lista:
>
> Parece ser que encontre una buena respuesta, parece que no es con wget
>
> ----INICIA----
> 3.6 Does Wget understand javascript?
>
> Wget doesn't feature javascript support and is not capable of performing
> recursive retrieval of URLs included in javascript code.

(...)

Que no entienda javascript de manera nativa no significa que no puedas
usar algún baipás cuando te encuentres con código javascript.

El problema es que el formulario que has puesto de ejemplo no parece que
use el método convencional de envío de datos al servidor (POST), ese el
problema :-/

Carlos Zuniga

unread,
Nov 1, 2010, 9:00:02 PM11/1/10
to
2010/11/1 Camaleón <noel...@gmail.com>:

> El Mon, 01 Nov 2010 10:26:27 -0600, rantis cares escribió:
>
>> Lista:
>>
>> Parece ser que encontre una buena respuesta, parece que no es con wget
>>
>> ----INICIA----
>> 3.6 Does Wget understand javascript?
>>
>> Wget doesn't feature javascript support and is not capable of performing
>> recursive retrieval of URLs included in javascript code.
>
> (...)
>
> Que no entienda javascript de manera nativa no significa que no puedas
> usar algún baipás cuando te encuentres con código javascript.
>
> El problema es que el formulario que has puesto de ejemplo no parece que
> use el método convencional de envío de datos al servidor (POST), ese el
> problema :-/
>
> Saludos,
>
> --
> Camaleón
>

Más que no usar el método convencional, parece que lo están intentando ofuscar.

Puedes seguir todo el camino que realiza el javascript para ver a que
url y con que parámetros post se envía, luego hacer lo mismo desde
bash cogiendo los datos de la pagina, pasarlos por grep o awk y de ahí
utilizar wget de nuevo...

Para un ejemplo, un script que hice hace tiempo para descargar
archivos de rapidshare (ojo, ya no funciona con su nueva interfaz)
http://pastebin.com/C3uCuV70

Si estás lidiando con logins, entonces tendrías que ver el soporte
para cookies de wget.

Otra opción que todavía no intento es utilizar webkit desde python que
sí te permite ejecutar javascript.
http://blog.motane.lu/2009/06/18/pywebkitgtk-execute-javascript-from-python/

Saludos
--
Linux Registered User # 386081
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/AANLkTiKn3rSO+-NuF7y2...@mail.gmail.com

rantis cares

unread,
Nov 2, 2010, 11:00:02 AM11/2/10
to
Camaleon:

El 1 de noviembre de 2010 18:58, Carlos Zuniga <carlo...@gmail.com> escribió:
2010/11/1 Camaleón <noel...@gmail.com>:
> El Mon, 01 Nov 2010 10:26:27 -0600, rantis cares escribió:
>
>> Lista:
>>
>> Parece ser que encontre una buena respuesta, parece que no es con wget
>>
>> ----INICIA----
>> 3.6 Does Wget understand javascript?
>>
>> Wget doesn't feature javascript support and is not capable of performing
>> recursive retrieval of URLs included in javascript code.
>
> (...)
>
> Que no entienda javascript de manera nativa no significa que no puedas
> usar algún baipás cuando te encuentres con código javascript.
>
> El problema es que el formulario que has puesto de ejemplo no parece que
> use el método convencional de envío de datos al servidor (POST), ese el
> problema :-/
>
> Saludos,
>
> --
> Camaleón
>

Más que no usar el método convencional, parece que lo están intentando ofuscar.

Puedes seguir todo el camino que realiza el javascript para ver a que
url y con que parámetros post se envía, luego hacer lo mismo desde
bash cogiendo los datos de la pagina, pasarlos por grep o awk y de ahí
utilizar wget de nuevo...

Para ser honesto, no se como seguir todo el camino javascript, ¿Podrías orientarme un poco para tomar camino en esa direccion?. Lo de bash no sera dificil, lo de grep y awk no creo que haya problemas.
 
Para un ejemplo, un script que hice hace tiempo para descargar
archivos de rapidshare (ojo, ya no funciona con su nueva interfaz)
http://pastebin.com/C3uCuV70

Si estás lidiando con logins, entonces tendrías que ver el soporte
para cookies de wget.

Ok comenzare a buscar por este camino.

Otra opción que todavía no intento es utilizar webkit desde python que
sí te permite ejecutar javascript.
http://blog.motane.lu/2009/06/18/pywebkitgtk-execute-javascript-from-python/

Saludos a todos.
0 new messages