最近は、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;
});