最近は、PerlのWWW::Mechanizeを使う事が増えました。
一番シンプルなコードは下記になります。
use strict; use warnings; use WWW::Mechanize; my $url = 'site name'; my $id = 'your id'; my $pw = 'your pw'; my $mech = WWW::Mechanize->new(); $mech->get($url); $mech->submit_form( fields => { 'id' => $id, 'pw' => $pw, }, ); print $mech->content; exit;
でも、サイトによっては単純にはいかない場合もあり(どこか勘違いしているだけかもしれませんが)、そういう場合は、FirefoxのLive HTTP Headrsなどのtoolを使って、HTTPの通信の中身を見ながら調整しています。
また、WWW::MechanizeのHTTP通信の様子をみるには、下記コードを挿入してあげればいいです。
$mech->add_handler(request_send => sub { my $req = shift; $req->dump; return; }); $mech->add_handler(response_done => sub { my $res = shift; $res->dump; return; });