【概要】
perlにてスクレイピングをしていたが、数サイトあるなかで、一部だけ上手くコンテンツがとれない状況が発生。
【調査したこと】
(推測)
- 同じサーバにあるので、サーバではなくサイトの問題。
- apacheの設定は全く同じなので、サイトのコンテンツの問題かも。
- とはいえ、ツール側で対応することになりそう。なので、ツール周りを調査。
(作業したこと)
- 現状把握
- 該当のスクレイピング時のhttpコードは200
- コンテンツが500文字弱位で切れている
もしかしたらオープンソースを使ったサイトなので、最新のバージョンでは、user agentでのアクセス時にサイズを指定しないと行けないかも。
→探したけど見当たらない...
レスポンスヘッダーに気になるものがいくつか。
- ‘client-aborted’ => ‘Client-Aborted’
- ‘client-response-num’ => ‘Client-Response-Num’
- ‘client-aborted’ => ‘die’
アクセスの度に値が変わったりする、ということ位しか分からなかった。
アクセスが正常に行われてない。
「’x-died’ => ‘Illegal field name \’X-Meta-Twitter:card\’ at ...」というものがあった。
クライアント側で想定していないレスポンスがある?
【そして解決】
以下のサイトを見つけた。
http://stackoverflow.com/questions/11169033/no-content-from-lwp-request
「HTML::HeadParser」をcpanでインストールすると、正常にコンテンツを取得できるようになった。