wget が Apache ディレクトリ リストを異なる順序でロードするのを防ぐにはどうすればよいですか?

wget が Apache ディレクトリ リストを異なる順序でロードするのを防ぐにはどうすればよいですか?

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

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

?C=M;O=Aスクリプトは15分ごとに実行されるので、リクエストをできるだけ減らしたいのです。次のようなディレクトリ順序変更ボタンから発生するリクエストがたくさんあることがわかりました。名前日付またはサイズ)。これらのリクエストを防ぐにはどうすればよいですか?

答え1

指摘されているように答え関連する質問ですが、wget のドキュメント言う:

また、クエリ文字列 (URL の末尾の疑問符 ('?') で始まる文字列) は、ローカル ファイルに選択される名前に実際に影響しますが、受け入れ/拒否ルールのファイル名の一部としては含まれないことにも注意してください。Wget の将来のバージョンでは、クエリ文字列との一致を許可するオプションが提供される予定です。

おそらく、次のような別のツールを使用する必要があります。パヴクまたはhtトラックこれら 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 の詳細については、次の URL を参照してください。

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

関連情報