2017-11-01 6 views
0

私のクロール中に404エラーにリダイレクトするページがありますが、 "readdb"コマンドを使用すると、404の代わりに302のステータスが表示されます。Nutchを有効にするにはhttpリダイレクトに従いますか?

次に、設定ファイルを検索してオプション "http.redirect.max"が見つかりました。

Response response = getResponse(u, datum, false); 
:私は、ソースコードを読んだ後、私は、すでに3用「http.redirect.max」を設定していて、ページを再クロールが、それの状態はまだ302

である私のようなものを見つけました

HttpBase.javaのメソッド "getProtocolOutput"にあります。私は "false"を "true"に変更してnutchを再コンパイルした後、この関数が機能します。

これは、nutchがリダイレクトに従うようにする正しい方法ですか?この変更により、クロール中に他のエラーが発生しますか?

答えて

0

この場合、Nutchは正しく動作していると思います。http.redirect.maxは、リダイレクトがすぐに実行されるか、次のラウンドのためにキューに入れられるかどうかを制御します。

404へのリダイレクトを含む1つのURL(A)をクロールすると、最初のURLはまだ30xの状態で存在し、404の応答を持つ2番目のURL(B)です。 Nutch側からは、2つの異なるURLがあります(意味があります)。

私はあなたの変更を他のシナリオとともにテストしていませんが、同様のケースがある場合は、ページAが別のページC(404ではない)にリダイレクトするとしましょう。 CのコンテンツはAのURLにリンクされ、CのURLは完全に無視されると予想されますか?

ブラウザでは、通常これがわかりますが、その下には2つの異なるリクエスト/ URLがあります。

関連する問題