先日紹介した Perlで指定したURLのHTMLを取得するサンプル のプロキシ対応版です。
認証付きプロキシを使用する場合は、サンプル中のコメント行をコメントアウトして下さい。
指定したURLのHTMLを取得するサンプル
use utf8; use Encode; use LWP::UserAgent; use HTTP::Request; use HTTP::Response; use Encode::Guess; $body = GetContents( "取得したいページのURL" ); print $body; sub GetContents { my $url = $_[0]; my $proxy = new LWP::UserAgent; $proxy->proxy( 'http' , 'プロキシのURL(例:http://proxy.test:8000/)' ); my $req = HTTP::Request->new('GET' => $url); # プロキシサーバが認証付きの場合は、次の行のコメントを外して下さい # $req->proxy_authorization_basic( "ユーザ名" , "パスワード" ); my $res = $proxy->request($req); my $base = $res->base; my $lasturl = $res->request->url; my $path = $lasturl; my $filename = $res->filename; if( $filename eq '' ){ }else{ $path =~ s/$filename.*//; } my $str = $res->content; my $enc = guess_encoding($str, qw/euc-jp shiftjis 7bit-jis utf8 iso-2022-jp iso-2022-jp-1/); unless(ref $enc){ $str = decode("shiftjis", $str); }else{ $str = decode( $enc->name , $str ); } return ( $lasturl , $base , $path , $str ); }
コメント