Perl的WWW ::机械化JSESSION问题

问题描述:

我有一个问题让/保持登录使用Perl机械化到网站Perl的WWW ::机械化JSESSION问题

望着头,看来该JSESSIONID不断变化。我正在使用饼干罐,但我认为它以某种方式被覆盖。

#!/usr/bin/perl 
use strict; 
use warnings; 
use WWW::Mechanize; 
use HTTP::Cookies; 
use Crypt::SSLeay; 

use LWP::UserAgent; 
use Crypt::SSLeay::CTX; 
use Crypt::SSLeay::Conn; 
use Crypt::SSLeay::X509; 

use LWP::Simple qw(get); 
use LWP::Debug; 

my $cookie_jar = HTTP::Cookies->new(ignore_discard => 1); 
my $agent = WWW::Mechanize->new(cookie_jar => $cookie_jar, noproxy=>0); 
$agent->agent_alias('Linux Mozilla'); 

$ENV{HTTPS_CA_DIR} = 'cert/'; 

my $user = 'xxxx'; 
my $pass = 'xxxx'; 

my $url = ''; 

print "\n\n=========================================================\nGOING TO LOGIN PAGE:\n"; 
my $res = $agent->get($url); 

for my $key ($res->header_field_names()) { 
    print $key, " : ", $res->header($key), "\n"; 
} 
print "cookie: ".$agent->cookie_jar->as_string(); 
$agent->form_name('loginForm'); 
$agent->set_fields(
    userId => $user, 
    password => $pass 
);  
$agent->submit(); 


print "\n\n=========================================================\nREDIRECT:\n"; 
my $res = $agent->submit(); 

for my $key ($res->header_field_names()) { 
    print $key, " : ", $res->header($key), "\n"; 
} 
print "cookie: ".$agent->cookie_jar->as_string(); 


my $cUrl = ''; 
$cookie_jar->revert; 

print "\n\n=========================================================\nGOING TO CAMPAIGN PAGE:\n"; 
my $res = $agent->get($cUrl); 

for my $key ($res->header_field_names()) { 
    print $key, " : ", $res->header($key), "\n"; 
} 
print "cookie: ".$agent->cookie_jar->as_string(); 

我不知道为什么这个工作,但我可以利用LWP :: ConnCache

$agent->conn_cache(LWP::ConnCache->new()); 
来解决这个