X-Died: Illegal field name 'X-Meta-Itmid:series' at /usr/local/lib64/perl5/HTML/HeadParser.pm line 207.
とのエラーが出ていた

色々とググってみると、
「LWP::UserAgentでメタタグにtwitter:cardが含まれていると正しく取得できない」
http://pb-times.jp/P_5211b1b8b402e
「LWP::UserAgent@6.05でX-Meta-Twitter:cardがヘッダに含まれているページがうまく取得できない」
http://akiym.hateblo.jp/entry/2013/04/28/112439
などに行きついた、上記はどちらも対処としては、
LWP::UserAgent の 6.05 で不具合が出たので、 6.04 に戻す
というものでしたが、もっとググってみると
「lwp-download fails with HTTP::Message 6.06」
https://github.com/libwww-perl/http-message/issues/3
と言うのを見つけた。
こちらに書かれている方がなんかしっくりきそうなので、
「Headers.pm」を以下のように変更するというこちらの方法をとってみました。
修正前
148 sub _header
149 {
150 my($self, $field, $val, $op) = @_;
151
152 Carp::croak("Illegal field name '$field'")
153 if rindex($field, ':') > 1 || !length($field);
154
155 unless ($field =~ /^:/) {
修正後
148 sub _header
149 {
150 my($self, $field, $val, $op) = @_;
151
152 Carp::croak("Illegal field name '$field'")
153 if ( $field !~ /^X-Meta/ && rindex($field, ':') > 1) || !length( $field);
154
155 unless ($field =~ /^:/) {
ひとまず、これで結果オーライ。
Comments