Perlで指定したURLのHTMLを取得(プロキシ対応版)

ALL
スポンサーリンク

先日紹介した 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 );
}

コメント