Estoy tratando de realizar lo siguiente:
Tengo un dispositivo que tiene un pequeño servidor web. Tiene un archivo xml (http://IP_dispositivo/counters.xml) que quiero consultar regularmente y automáticamente para recoger su información. El problema es que para acceder a ese archivo tengo que registrarme previamente (http://IP_dispositivo/frameCmd_Login.htm) en el siguiente formulario:
Using html4strict Syntax Highlighting
- <form method="get" action="/Action_Login" onsubmit="return MD5HASH()">
- <font color="#000000" align="center">Please Enter Password</font>
- <input size="21" type="password" value="" name="LOGINPASSWORD" id="PD" />
- <input name="submit" type="submit" value="LOGIN" />
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Lo he intentado usando los módulos LWP y URL, pero no sé hacerlos funcionar correctamente; soy novato con este lenguaje. El script que he probado es el siguiente:
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use LWP::UserAgent;
- my $ua = new LWP::UserAgent;
- my $req = new HTTP::Request(GET => 'http://IP_dispositivo/frameCmd_Login.htm');
- $req->authorization_basic("password123");
- my $res = $ua->request($req);
- if ($res->is_success)
- {
- my $file = $res->content;
- print $file;
- }
- else
- {
- die $res->status_line;
- }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
También he probado con el módulo WWW::Mechanize de la siguiente manera:
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use WWW::Mechanize;
- my $mech = WWW::Mechanize->new();
- $mech->get( $url );
- $mech->follow_link( url => 'http://IP_dispositivo/frameCmd_Login.htm' );
- $mech->submit_form(
- form_number => 1,
- fields => {
- LOGINPASSWORD => 'password123',
- }
- );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Pero no entiendo muy bien cómo funciona.
Lo que estoy intentado hacer es, primero registrarme en la primera página (login) y posteriormente descargarme y analizar el archivo xml.
¿Alguien sabe cómo podría realizar esto correctamente? ¿Podéis echarme una mano?
Gracias por todo,
David