2007/09/21 (金)
■ Web::Scraper 添削

Plagger::Plugin::CustomFeed::Script用のスクリプトとしてとらのあな通販新着チェックを書き直してみた - fubaはてな
いろいろとつっこみどころのあるコードではあるんですが、とりあえず、decode_sjis してる部分は不要。Web::Scraper では基本的にすべてHTMLをいったん Unicode にデコードして処理するようになっています。
この例で decode_sjis しているのは、HTTP::Response::Encoding による自動判定に失敗している (Content-Type: text/html; charset=none とかたわけたヘッダが返っている)ためで、Web::Scraper 0.19 では META タグも見てより正しいエンコーディングを自動判定するようにしました。それ以前でも、
my $content = LWP::UserAgent->new->get($uri)->content; $content = decode("shift_jis", $content); $scraper->scrape(\$content, $uri);
のように一度自前でdecodeすればOK.
コメント