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
- 公開