読者です 読者をやめる 読者になる 読者になる

LWP::UserAgent@6.05でX-Meta-Twitter:cardがヘッダに含まれているページがうまく取得できない

Perl

詳しくは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がリリースされるんでしょうね)