
ウェブサーバーからすべての画像、特にJPEGをダウンロードしたいのですが、実行しているコマンドは正当なもので、ウェブサイトにJPEGがあることはわかっています。例えば
wget -r -PC:/ -A.jpg翻訳元:
私の理解では、このコマンドはサーバー全体を再帰的にスキャンし、jpeg 画像のみを忠実に検索して、それらの画像を C:/ ドライブにダウンロードします。何らかの理由で、これが機能しません。
ソース コードを見ると、画像は実際にはページに直接埋め込まれているのではなく、サーバー上の別のディレクトリにホストされていることがわかります。これが、wget がこれらの画像のダウンロードに失敗する理由でしょうか?
答え1
私自身の質問に答えると、wget はリンクをたどってファイルを直接ダウンロードすることしかできないというのは本当です。ほとんどのイメージがディレクトリ リストをサポートしていないか制限のあるディレクトリにリンクされているため、wget にはそのディレクトリの内容を解析する方法がありません。
良い例としては、wp-content フォルダの下に画像を保存する WordPress サイトが挙げられます。このフォルダをトラバースしようとすると、403 禁止エラーが発生します。この画像はリンクされた画像としてブラウザで表示できますが、画像は直接アクセスできないディレクトリに保存されているため、wget はアクセスできません。
詳細が不足していたり、プロセスを正しく説明していない場合は、誰かがこの回答に追加することができます。
答え2
これが wget がこれらのイメージのダウンロードに失敗する理由ですか?
回答:たぶん / おそらく。
次のオプションを追加してみてください:
-l1 -H
の-Hアプリにドメインをまたぐように指示し、サイトから離れたリンクをたどる必要があることを意味します(画像は別のサーバーから提供されている可能性があります)。 そしてその-l1 1 レベルだけ深くすることを意味します。つまり、リンクされたサイトのリンクをたどらないということです。この方法では、画像ファイルをホストしている別のサーバーからコンテンツをダウンロードできる可能性があります。
記憶が正しければ、完全な WordPress サイトをミラーリングしながら、wp-content フォルダーから画像にアクセスすることができます。