Wget - Web サーバーからすべての画像をダウンロードする

Wget - Web サーバーからすべての画像をダウンロードする

ウェブサーバーからすべての画像、特に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 フォルダーから画像にアクセスすることができます。

関連情報