Perl: Login using Mechanize module
866420Jun 3 2011 — edited Aug 29 2013Hello,
I'm working on a application that return a status of a website. For example, when i provide a link 'http://www.oracle.com/partners/index.html' in the application, it scans each and every link inside it and it also scans links inside parent link, links inside the child link, links inside the sibling link, it goes on until it end. Now my problem is, I couldn't access the secure pages of the site, i.e. which needs authentication. I have the following code,
#! "C:\perl\bin\perl.exe"
use strict;
use warnings;
use WWW::Mechanize;
use HTTP::Cookies;
use HTTP::Request::Common;
use Crypt::SSLeay;
my $url = "http://www.oracle.com/partners/secure/engage-with-oracle/index.html";
my $mech = WWW::Mechanize->new();
$mech->proxy('http', 'http://www-proxy.us.oracle.com:80');
$ENV{HTTPS_PROXY} = 'http://www-proxy.us.oracle.com:80';
my $username = 'my_email';
my $password = 'my_password';
$mech->cookie_jar(HTTP::Cookies->new());
my $testva = $mech->get($url);
$mech->form_number(0);
$mech->field("ssousername",$username);
$mech->field("password",$password);
$mech->submit_form();
print $mech->status;
print $mech->content;
it throws a error "Can't call method "value" on an undefined value at C:/Perl/lib/WWW/Mechanize.pm line 1403.". I don't know what does it exactly means. I tried it with other links like twitter,
my $url = "http://twitter.com/";
$mech->form_number(0);
$mech->field("session[username_or_email]",$username);
$mech->field("session[password]",$password);
$mech->submit_form();
In this instance, it works fine and print the content and status.
Please help me out this!!
Thanks in Advance.
Regards,
Aravind.M.S
Edited by: 863417 on Jun 3, 2011 4:12 AM