use encoding 'utf8',
STDIN=>'utf8', STDOUT=>'utf8';
use LWP::UserAgent;
use HTTP::Date;
use Encode::Guess;
use Encode;
sub getWebContent($$)
{
my ($url, $modified) = @_;
# ユーザーエージェントを作る
my $ua = new LWP::UserAgent;
# ユーザーエージェント文字列を設定する
$ua->agent('my robot');
# 時間が指定されているなら、その時間より更新されている場合だけ取得する
if ($modified)
{
$ua->default_header('If-Modified-Since',
time2str($modified));
}
# 接続して結果を得る
my $response = $ua->get($url);
if ($response->code == 304)
{
# 最終更新日以降に更新されていない
return (undef, $modified);
}
if (!$response->is_success)
{
die "接続エラー" . $response->status_line;
}
# 最終更新日を得る
my $lastmodified = str2time(
$response->header('Last-Modified'));
my $content = $response->content;
# コンテンツはUTF-8に変換しておくことにする
Encode::Guess->set_suspects(
qw/shiftjis euc-jp 7bit-jis/);
$content = Encode::decode("Guess", $content);
return ($content, $lastmodified);
}
次ページから上記、リスト1の内容について解説していこう。
Copyright © ITmedia, Inc. All Rights Reserved.