wgetがApacheディレクトリリストを別の順序でロードするのを防ぐ方法は何ですか?

wgetがApacheディレクトリリストを別の順序でロードするのを防ぐ方法は何ですか?

次のコマンドを使用してディレクトリを再帰的にダウンロードしようとします。

wget -r -l2 --no-parent -A "*.pdf" -nd -N -e robots=off http://…

スクリプトは15分ごとに実行されるので、要求をできるだけ低く保ちたいと思います。?C=M;O=A次のディレクトリ順序の変更ボタンで、多くの要求が入ってくることを確認します。名前日付またはサイズはい)。これらの要求が発生しないようにするにはどうすればよいですか?

答え1

指摘したとおり回答関連する質問では、wgetのドキュメント説明する:

さらに、クエリ文字列(疑問符( "?")で始まるURLの末尾にある文字列)は、実際に選択に影響を与えても受け入れ/拒否ルールのファイル名の一部として含まれません。 Wgetの将来のバージョンでは、クエリ文字列の一致を可能にするオプションが提供されると予想されます。

次のようなさまざまなツールを使用する必要があります。パブクまたはhttrack。これら2つのプログラムは、wgetよりも強力な名前フィルタリングを提供します。

あるいは、wgetを使用してディレクトリをダウンロードして後でフィルタリングすることもできます。

find . -name '*\?' -delete
# Here is a less dangerous pattern that matches the string you provided more closely:
find . -name '*\??=?;?=?' -delete

答え2

*.pdfファイルのディレクトリをミラーリングしたい場合は、httrackを使用します。次のコマンドが私に効果的です。

 % httrack http://my.server.com/dir/with/pdfs/ +mime:text/html +*.pdf --update

httrackの詳細については、以下で確認できます。

wgetと比較してhttrackを使用することの主な利点の1つは、httrackが変更/更新されたファイルのみをダウンロードすることです。

関連情報