refererを指定しないとはじかれるページからGETしたい時に。
やりかたは、普通にHTTP::Requestのコンストラクタ呼び出しの時に、ヘッダを指定するだけ。
- LWP::UserAgent
- HTTP::Request
- HTTP::Headers
use LWP::UserAgent; use HTTP::Request; use HTTP::Headers; my $g_ua = LWP::UserAgent->new; $g_ua->agent('Mozilla/5.0'); print get('ターゲットURL', 'リファラーURL' ) , "\n"; exit(0); # referer付 get ( URL, refererURL ) sub get{ my $re = $g_ua->simple_request(HTTP::Request->new( GET => $_[0], new HTTP::Headers(Referer => $_[1]) )); return ($re->code() == 200 ? $re->content() : ''); }
LWP::UserAgentをuseすれば、一緒に use HTTP::Request; use HTTP::Headers; されはずなのでわざわざuseしなくてもいい。
しかし、プログラム内で使っているので、一応宣言しておく。