使用 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); ........