Wgetを使用して、URLからすべての画像を1つのフォルダーにダウンロードするにはどうすればよいですか?


133

私はwgetを使用してWebサイトからすべての画像をダウンロードしていますが、正常に動作しますが、サイトの元の階層とすべてのサブフォルダーが保存されるため、画像が点在しています。すべての画像を単一のフォルダーにダウンロードする方法はありますか?現在使用している構文は次のとおりです。

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

回答:


194

これを試して:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

詳細は次のとおりです。

-ndディレクトリ階層の作成(つまり、ディレクトリなし)を防止します。

-r再帰的な検索を可能にします。詳細については、再帰的ダウンロードを参照してください。

-P すべてのファイルとディレクトリが保存されるディレクトリプレフィックスを設定します。

-A特定のファイルタイプのみを取得するためのホワイトリストを設定します。文字列とパターンが受け入れられ、両方をコンマ区切りのリストで使用できます(上記参照)。詳細については、ファイルのタイプを参照してください。


5
これは実際には機能しませんでした。保存場所は "。"でした。そしてそこにサイト階層全体をコピーしました。
バトルButkus

2
@ButtleButkus Accept -Aオプションを使用するには、もう少し混乱させる必要があるようです。ファイルのタイプに関するWgetのドキュメントを参照してください。また、現在のディレクトリにダウンロードしている場合は、ディレクトリプレフィックス-Pオプションを削除できます。jpgのみなどの単一のファイルタイプをダウンロードする場合は、などを使用しますwget -r -A.jpg http://www.domain.com。Wgetドキュメントが提供する高度な例を見てください。
Jon

-nd 上記に追加 すると機能します。次のような複数の-Aフラグを指定することもできます-A "*foo*" -A "*bar*"
Yablargo

1
デフォルトの最大再帰深度レベルであるを使用する--level=infか、ジョブを妨害する可能性がある--level=9999999999ため、使用することを忘れないでください。wget5
user619271 2017年

127
wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
  • -nd:ディレクトリなし(すべてのファイルを現在のディレクトリに保存します; -P directoryターゲットディレクトリを変更します)
  • -r -l 2:再帰レベル2
  • -A:受け入れられる拡張機能
wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off example.tumblr.com/page/{1..2}
  • -H:スパンホスト(デフォルトでは、wgetは異なるドメインまたはサブドメインからファイルをダウンロードしません)
  • -p:ページ要件(各ページの画像などのリソースを含む)
  • -e robots=off:コマンドrobotos=off.wgetrcファイルの一部であるかのように実行します。これにより、ロボットの除外が無効になります。つまり、robots.txtとロボットのメタタグを無視します(これがもたらす影響を理解しておく必要があります)。

例:.jpg例示的なディレクトリリストからすべてのファイルを取得します。

$ wget -nd -r -l 1 -A jpg http://example.com/listing/


9

これを試してください:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com

余分な情報がすべて削除されるまで待ちます


それは私のために働いていません。wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Vivo

5

マニュアルページによると、-Pフラグは次のとおりです。

-P prefix --directory-prefix = prefixディレクトリプレフィックスをプレフィックスに設定します。ディレクトリプレフィックスは、他のすべてのファイルとサブディレクトリが保存されるディレクトリ、つまり検索ツリーの最上位です。デフォルトはです。(現在のディレクトリ)。

つまり、宛先のみを指定し、ディレクトリツリーを保存する場所を指定します。ツリーを1つのディレクトリにフラット化しません。前述のように、-ndフラグは実際にそれを行います。

@Jon将来的には、フラグが何をするかを説明して、何かがどのように機能するかを理解することは有益です。


2

提案されたソリューションは、画像をダウンロードするのに最適であり、使用しているディレクトリにすべてのファイルを保存するだけで十分な場合。ただし、サイトの階層ツリー全体を複製せずに、指定したディレクトリにすべての画像を保存する場合は、Jonによって提案された行に「cut-dirs」を追加してみてください。

wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.boia.de --cut-dirs=1 --cut-dirs=2 --cut-dirs=3

この場合、cut-dirsは、Webサイト階層ツリーの3番目のレベルの深さまでwgetがサブディレクトリを作成するのを防ぎ、指定したディレクトリにすべてのファイルを保存します。深い構造のサイトを扱っています。


-7

wgetユーティリティは、HTTP、HTTPS、FTPなどの広く使用されているプロトコルを使用して、World Wide Web(WWW)からファイルを取得します。Wgetユーティリティは無料で入手できるパッケージであり、ライセンスはGNU GPLライセンスに基づいています。このユーティリティは、WindowsやMAC OSを含む任意のUnixライクなオペレーティングシステムをインストールできます。これは非対話型のコマンドラインツールです。Wgetの主な特徴は、堅牢性です。低速または不安定なネットワーク接続で動作するように設計されています。Wgetは、ネットワークの問題が発生した場合、中断されたところから自動的にダウンロードを開始します。また、ファイルを再帰的にダウンロードします。ファイルが完全に取得されるまで試行を続けます。

Linuxマシンにwgetをインストールしますsudo apt-get install wget

ファイルをダウンロードするフォルダを作成します。sudo mkdir myimages cd myimages

Webページを右クリックして、たとえば画像の場所が必要な場合は、画像を右クリックして画像の場所をコピーします。複数の画像がある場合は、以下に従ってください。

一度にWebからダウンロードする画像が20ある場合、範囲は0〜19から始まります。

wget http://joindiaspora.com/img {0..19} .jpg


2
あなたの答えは、wgetとは何か、それを使用して連番の画像をダウンロードする方法を説明しています...どちらも元の質問とは関係ありません。
Alastair 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.