Alejandro Santillan Iturres wrote:

> I need to download a page which is password-protected (php):
> http://marketsmart-real.pcquote.com/login.php?redirectLocation=getquote.php?symbol=NDX
>  
> When accessing the former page, it is requested a user and password via
> a form.
> Used AJS2 and password dosmil work fine.
> Now what I want is to emulate the manual login using LWP in order of
> getting the webpage contents.
> After inspecting the resulting form html code, I found that it has the
> following parameters:
> 
> <FORM NAME="theForm" METHOD="POST">
> <INPUT TYPE="hidden" NAME="redirectLocation"
> VALUE="getquote.php?symbol=NDX">
> <INPUT TYPE="text" NAME="username" SIZE=20>
> <INPUT TYPE="password" NAME="password" SIZE=20>
> <INPUT TYPE="submit" VALUE="Login">
> </FORM>
>  
>  
> So I've tried to get the page using LWP, passing some parameters using
> the POST method:
> 
> use LWP::UserAgent;
> $ua = new LWP::UserAgent;
> $get_url="http://marketsmart-real.pcquote.com/login.php";;
> $req = HTTP::Request->new(POST=>$get_url);
>  
> $req->content(   redirectLocation=>"getquote.php?symbol=NDX",
>                         user=>"AJS2",
>                         password=>"dosmil");
>  
> 
> $webpage=$ua->request($req)->as_string;
> print $webpage;
>  
>  
> The problem is that the result in $webpage says that the user or
> password are erroneous, but they are correct and work perfect by typing
> them manually.
> Am I doing something wrong when passing the parameters to the php script?
> I've also tried to pass parameters in the following form, unsuccessfully:
> $req->content("+redirectLocation='getquote.php?symbol=NDX'&+user=AJS2&+password=dosmil");
>  
> Any idea?

use strict;
use warnings;
use HTTP::Cookies;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);

my $ua = new LWP::UserAgent;
my $cookie_jar = HTTP::Cookies->new(file => 'lwpcookies.txt',
  autosave => 1, ignore_discard => 1);
$ua->cookie_jar($cookie_jar);

my $url = 'http://marketsmart-real.pcquote.com/getquote.php?symbol=NDX';

my $req = POST $url, Content_Type => 'form-data',
  Content => [ 'redirectLocation' => 'getquote.php?symbol=NDX',
  username => 'AJS2', password => 'dosmil' ];
my $res = $ua->request($req);

my $content = $res->as_string;
$content =~ s/<tr[^>]*>/\n/gs;  # scrub the tags etc.
$content =~ s/<[^>]*>//gs;
$content =~ s/[ \t][ \t]+/ /gs;
$content =~ s/\n\s+/\n/gs;
$content =~ s/\s+\n/\n/gs;
$content =~ s/\n\n+/\n/gs;
print $content, "\n";

__END__
_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to