Tengo tres problemas que no puedo resolver. Platicaré la historia.
Mando éste a correr en terminal
perl xxxxxxx.pl. Este es el fuente:
Using perl Syntax Highlighting
#!/usr/bin/perl
# GET method form
use HTML::TreeBuilder;
use HTML::FormatText;
use LWP::Simple;
use URI::URL;
$url=url("http://www.loquesea.com/index.php");
$url->query_form(acciones='agdrfe');
#$content=get($url);
#print $content;
print "Url :",$url,"\n";
# POST method form
use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
$ua=LWP::UserAgent->new();
my $req= POST $url, [user=>'xxxxxx',password=>'xxxxxxxx'];
$content=$ua->request($req)->as_string;
print $content;
my $inicio=index($content, 'Location') + 10;
my $fin=index($content, 'amover_si_fuerz=2') - $inicio + 17;
print "inicio: $inicio fin: $fin \n";
my $fragmento = substr $content, $inicio, $fin;
$fragment=get($fragmento);
print "fragment: <$fragmento>\n";
print $fragment;
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Me da este resultado
Using bash Syntax Highlighting
$ perl xxxxxxxx.pl
Url :http://www.loquesea.com/index.php?variable=variable1
HTTP/1.1 302 Found
Connection: close
Date: Sat, 11 Jun 2011 06:00:56 GMT
Location: http://subdominio.loquesea.com/login.php?sid=ffdd45ac34ef&secret=2&amover_si_fuerz=2
Server: lighttpd/1.4.28
Content-Length: 0
Content-Type: text/html; charset=utf-8
Client-Date: Sat, 11 Jun 2011 06:00:55 GMT
Client-Peer: 212.48.106.167:80
Client-Response-Num: 1
Set-Cookie: server_id=es10; expires=Mon, 11-Jul-2011 06:00:54 GMT; httponly
X-Powered-By: PHP/5.3.3-7
inicio: 83 fin: 84
fragment: <http://subdominio.loquesea.com/login.php?sid=ffdd45ac34ef&secret=2&amover_si_fuerz=2>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body id="ds_body" class="header" >
<table class="content-border" style="margin:auto; margin-top: 25px; border-collapse: collapse; width: 100%">
<h2>Sesi�n caducada</h2>
Coloreado en 0.004 segundos, usando
GeSHi 1.0.8.4
Cuando ejecuto desde la terminal la dirección que me presenta puedo entrar, ya está firmado, pero cuando obtengo la dirección de la forma que busca, desde el resultado por programa, la sesión dice que ya expiró.
Cuando mando a ejecutar este fuente:
Using perl Syntax Highlighting
#!/usr/bin/perl
use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $req = POST "http://www.loquesea.com/index.php&acciones='agdrfe'",
[
user=>'xxxxxxx',
password=>'xxxxxxx'
];
print $ua->request($req)->as_string;
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Con los comentario de que la dirección la pusiera en comillas me responde esto:
Using bash Syntax Highlighting
$ perl xxxxxx.pl
HTTP/1.1 404 Not Found
Connection: close
Date: Sat, 11 Jun 2011 06:27:30 GMT
Server: lighttpd/1.4.28
Content-Length: 345
Content-Type: text/html
Client-Date: Sat, 11 Jun 2011 06:27:29 GMT
Client-Peer: 212.48.106.167:80
Client-Response-Num: 1
Title: 404 - Not Found
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404 - Not Found</title>
</head>
<body>
<h1>404 - Not Found</h1>
</body>
</html>
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
O sea, bien claro, dice que la dirección no existe.
Cuando mando a ejecución este otro
Using perl Syntax Highlighting
#!/usr/bin/perl -w
use strict;
use HTML::TreeBuilder;
use HTML::FormatText;
use LWP;
my $browser=LWP::UserAgent->new(agent=>'Perly v1');
my $recult=$browser->post("http://www.loquesea.com/index.php&acciones='agdrfe'",
[
user=>'xxxxxxxx',
password=>'xxxxxxxx'
]);
$recult->header("Connection" => "keep-alive");
use LWP::Simple;
print getstore("http://subdominio.loquesea.com/garbon.php?hotelws=1240685","/tmp/pantalla");
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Yo estoy asumiendo que se firmó, pero cuando entro a alguna de la dirección me dice que la sesión caducó.
¿Cómo puedo obtener el resultado en HTML, de cuando se firmó, y cómo puedo mantener la sesión activa?
¿Habrá quien me ayude a solucionar y poder efectuar cambio tanto en
batch como en línea, sobre las mismas páginas? Están en un servidor que no puedo cambiar, pero el trabajo de llenar datos, se encuentra casi resuelto.
Gracias por proporcionar su ayuda. Lo que hasta estos momentos se ha logrado, y de lo que se puede lograr.