Webサイトのmetaタグを解析する必要が増えてきました。
いままでは、パターンマッチで一つずつ取り出していました。
モジュールが用意されているので、使ってみましょう。
使用したHTML::HeadParserモジュールのバージョンは2.22でした。
Perlのバージョンが5.8であれば、インストールされています。
使い方
use LWP::Simple;
my $html = get( 'http://127.0.0.1/' );
use HTML::HeadParser;
my $p = new HTML::HeadParser;
$p -> parse( $html );
my %parse = (
'title' => $p -> header( 'title' ),
'charset' => $p -> header( 'content-type' ),
'copyright' => $p -> header( 'x-meta-copyright' ),
'keywords' => $p -> header( 'x-meta-keywords' ),
'description' => $p -> header( 'x-meta-description' ),
);
foreach my $key ( keys %parse ){
printf( "%s : %s\n", $key, $parse{$key} );
}
不具合
XHTMLのソースを渡すとエラーでプロセスが落ちてしまうので、
HEADタグの中身のみを渡した方がいいでしょう。
おわりに
x-metaという使い方には、いまだに慣れません。
XHTMLに対応して、URIを直接指定したいですね。
更新履歴
- 2008-04-04
- サイト移動に伴うHTMLの修正(旧URI:[廃止])
- 2008-01-07
- 公開