使用するモジュール
use Encode;
use Encode::Guess;
use XML::RSS;
use LWP::UserAgent;
use HTTP::Request;
#!/usr/bin/perl
use Encode;
use Encode::Guess;
use XML::RSS;
use LWP::UserAgent;
use HTTP::Request;
my $url = 'https://perltips.twinkle.cc/index.rdf';
# 初期化
my $proxy = new LWP::UserAgent; # UseAgent の作成
my $req = new HTTP::Request(GET=>$url);
my $rss = new XML::RSS;
my $res = $proxy->request($req); # $url にアクセスする
my $xml = $res->content; # コンテンツ (この場合は RSS/XML) を取得
my $enc = guess_encoding($xml, qw/euc-jp shiftjis 7bit-jis utf8/); # 文字コードを判定
ref($enc) or die "Can't guess: $enc"; # 自動判定がうまくいかなかったときのエラー処理
# utf8 で保存 ($enc->name を decode することにより、utf8 で変数に保管される
$xml = decode($enc->name, $xml);
eval {
$rss->parse($xml);
};
if($@) { # $rss->parse が失敗したとき
print "error\n";
}
# @{$rss->{items}} に、RSS のすべてのエントリー (item) が入る
foreach my $item ( @{$rss->{items}} ) {
# ケータイ (iモード) で出力したいので Shift_JIS にする
my $title = encode('shiftjis', $item->{title});
my $description = encode('shiftjis', $item->{description}); # 上に同じ
print qq|<a href="$item->{link}">$title</a>\n|; # タイトルをリンクつきで出力
print qq|$description<br />\n|; # 概要 (description) を出力
}
exit;
トラックバック URL:
https://perltips.twinkle.cc/trackback/32