使用 perl 来登录网页

2009/01/06

Tags: cookie linux perl

应该不能用。。。只是为了记录
使用 LWP::UserAgent 可以简单的去访问网页,获取页面内容。例如
use LWP::UserAgent;

my $ua = LWP::UserAgent->new();
$ua->timeout(10);
$ua->agent('mozilla');

my $r = $ua->get('http::/www.google.com');
print $r->content; # or $r->decoded->content

$r 的其它属性可以去 cpan 看看。这样就获取到了内容。但是,如果一个网页是需要登录的怎么办?可以用保存 cookie 的方式。
use LWP::UserAgent;
use HTTP::Cookies;
use Digest::MD5 qw(md5 md5_hex); # 用来生成 md5 的
use JSON; # 用来在 json 串和 perl 的 hash 串之间转换
use Data::Dumper;

my $cookie_jar = HTTP::Cookies->new(
	file => "lw.dat",
	autosave => 1
);

my $ua = LWP::UserAgent->new();
$ua->timeout(10);
$ua->agent('mozilla');

my(@rest) = ("/", ".yahoo.com", undef, 0, 0, 60*60, 0);
$cookie_jar->set_cookie(0, 'session', $session, @rest);

$ua->cookie_jar($cookie_jar);

$o = $ua->get($url);
........

Comments