htmlのtitle要素取得するのに必要な先頭からのbyte数が分からん
スポンサードリンク
URLで示したアドレスの html のタイトルを取得したい、ていう命題があったので、
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Encode;
use Encode::Guess qw/cp932 euc-jp 7bit-jis/;
use LWP;
my $max_size = 400; # 取得byte数
my $url = 'http://dtpwiki.jp/';
my $ua = LWP::UserAgent->new();
$ua->max_size($max_size);
my $res = $ua->get($url);
my $enc = guess_encoding($res->content);
my $enc_name = 'cp932'; # Guess 失敗したら CP932
$enc_name = $enc->name if ref $enc;
my $title = decode($enc_name, $res->title);
print encode('utf8', "$enc_name\n");
print encode('utf8', "$title\n");
ていうのを、Perl クックブック第2版 Volume 2 p.1002 ex.20-4 をみて作って、コードとしてはちゃんと動くみたいなんだけれども、肝腎の、世の中の Web は何 byte 取得すればおおむねタイトルを取得できるか(=title 要素取得できるのに充分なのか)っていうところがわかんないですよね。XHTML とかで XML 宣言とかあるし、title は meta タグで言語指定したあとに置けっていうことで head の中でも後ろの方に来そうだよなー
(2006-09-10 09.46訂正)
たいとる、biteを、byteに訂正しました。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/1803





![: Amazon.co.jp: プラスティック・メモリーズ 1【完全生産限定版】(イベントチケット優先販売申込券付) [Blu-ray]](/lists/_9/B00VWX66E8.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 2【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66K2.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 3【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6MV0.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 4【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66IO.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 5【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6Y0E.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 6【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX69D6.jpg)


静的ファイルであれば、どうせhttpdはそのまま送ってくるだけなので、全部取っちゃえばいいのでは?
うちのカテゴリ別サマリがサマリではなく全文掲載になってたばっかりに 2MB になって、Google にそっぽむかれたっていうのがあって、そういう意味ではやっぱりリミット決めといたほうがいいかなーとおもいます。なんだか、16KB も読むと読み過ぎなような気がするので(なんだか 8bit 機でゲームが動かせそうな量じゃん)、4KB ぐらいにしておこうと思います。