詳しくはlwp-download fails with HTTP::Message 6.06 · Issue #3 · libwww-perl/http-message · GitHubに書かれていますが、要約すると
X-Meta-Twitter:card
のような:
がヘッダに含まれているとIllegalであると判断されるようになってしまった
use strict; use warnings; use utf8; use LWP::UserAgent 6.05; my $ua = LWP::UserAgent->new(); my $res = $ua->get('http://www.youtube.com/watch?v=9Y6H-YjsE9Q'); print $res->content, "\n"; print $res->header('X-Died'), "\n";
例えば、みんな大好きYouTubeのページはうまく取得できません。X-Diedヘッダ(LWP内部での例外メッセージが覗けます)を見ると、なるほどーという感じですね。
Illegal field name 'X-Meta-Twitter:card' at HTML/HeadParser.pm line 207.
はてなブログもX-Meta-Twitter:card
がヘッダに含まれているので、うまく取得できませんね。
LWP::UserAgent@6.04を使う
割と困るので、6.05ではなく6.04を使うと幸せになれます。(いつ6.07がリリースされるんでしょうね)