hpricotを使ってWebページのスクレイピングするプログラムを書いているのですが、
スクレイピングの処理を実行すると、
ターミナルに件名のようなメッセージが表示されます。
正確には下記のようなメッセージです。
2010/02/08 13:45:52 org.apache.commons.httpclient.HttpMethodBase
getResponseBody
?x??: Going to buffer response body of large or unknown size. Using
getResponseBodyAsStream instead is recommended.
「サイズが大きすぎて扱えない」というようなことを言われているのはわかるのですが、
どうすればよいかがわかりません。
ご存知の方はご教示いただけますでしょうか。
Google App Engineのエラーではなく、Apacheのエラーのような気もしますが。。。
どうぞよろしくお願いいたします。
【実行環境】
Mac OS 10.6
・appengine-jruby-jars (0.0.6)
・appengine-rack (0.0.6)
・appengine-sdk (1.3.0)
・appengine-tools (0.0.9)
・google-appengine (0.0.9)
--
このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
無視してよいメッセージとのことで、安心いたしました。
スクレイピングがうまく動かず、
処理が途中で止まっているのではと考えていたのですが、
うまく動いていなかったのは別の原因のようです。
あれこれ試してみて、
スクレイピングもうまく動くようになりました。
これで先に進められそうです。
GAEに関係のないメッセージにも関わらず、
お答えいただきありがとうございました。
また、GAEに関係のない質問で申し訳ありませんでした。
On 2月9日, 午前1:37, Yoshifumi KOHATA <kohata.yoshif...@gmail.com> wrote:
> アピリオ 木幡と申します。
>
> Ruby/JRuby も hpricot も触ったことがないのですが、ご提示いただいた
> メッセージは、Apache の HTTPClient が出しているものです。http://hc.apache.org/httpcomponents-client/index.html
>
> たしか、getResponseBody は、HTTPで取得されるコンテンツを一度に
> すべてダウンロードしてバイト配列で返すので、想定外の大きなデータ
> を取得した場合などに細かい制御ができません。
> メモリを食いつぶしたり、長い時間処理がブロックされたりすることが
> 考えられます。
> getResponseBodyAsStream を使った場合、ストリームからデータを
> 取得できるので、こっちの方が小回りが効くので安全ですよ、という
> ようなメッセージではないでしょうか。
>
> おそらくJRubyの実装にHTTPClientが使われているのかと想像します
> が、rubyのインタフェースからこのあたりを制御できるのかどうかは
> 前述のとおりで、不明です。
>
> また、文字化けしてますが、おそらく警告レベル以下のメッセージ
> で、処理が中断されるようなエラーではないように思われます。
> スクレイピングが目的ということですので、PDFなど、非テキスト
> コンテンツを相手にしないのであれば、もしかしたら、放置して
> おいても良いものかもしれません。
>
> 以上、ご参考になれば幸いです。
>
> 2010年2月8日23:01 tagawa <dounoko...@gmail.com>:
>
>
>
> > 環境はMac + JRuby + Sinatraです。
>
> > hpricotを使ってWebページのスクレイピングするプログラムを書いているのですが、
> > スクレイピングの処理を実行すると、
> > ターミナルに件名のようなメッセージが表示されます。
> > 正確には下記のようなメッセージです。
>
> > 2010/02/08 13:45:52 org.apache.commons.httpclient.HttpMethodBase
> > getResponseBody
> > ?x??: Going to buffer response body of large or unknown size. Using
> > getResponseBodyAsStream instead is recommended.
>
> > 「サイズが大きすぎて扱えない」というようなことを言われているのはわかるのですが、
> > どうすればよいかがわかりません。
>
> > ご存知の方はご教示いただけますでしょうか。
>
> > Google App Engineのエラーではなく、Apacheのエラーのような気もしますが。。。
>
> > どうぞよろしくお願いいたします。
>
> > 【実行環境】
> > Mac OS 10.6
> > ・appengine-jruby-jars (0.0.6)
> > ・appengine-rack (0.0.6)
> > ・appengine-sdk (1.3.0)
> > ・appengine-tools (0.0.9)
> > ・google-appengine (0.0.9)
>
> > --
> > このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
> > このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
> > このグループから退会するには、google-app-engine...@googlegroups.com<google-app-engine-japan%2Bunsu...@googlegroups.com>にメールを送信してください。
> > 詳細については、http://groups.google.com/group/google-app-engine-japan?hl=jaからこのグループにアクセスしてください。
>
> --
> --
> KOHATA Yoshifumi
このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。