私はwgetを使用してWebサイトからすべての画像をダウンロードしていますが、正常に動作しますが、サイトの元の階層とすべてのサブフォルダーが保存されるため、画像が点在しています。すべての画像を単一のフォルダーにダウンロードする方法はありますか?現在使用している構文は次のとおりです。
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
私はwgetを使用してWebサイトからすべての画像をダウンロードしていますが、正常に動作しますが、サイトの元の階層とすべてのサブフォルダーが保存されるため、画像が点在しています。すべての画像を単一のフォルダーにダウンロードする方法はありますか?現在使用している構文は次のとおりです。
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
回答:
これを試して:
wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
詳細は次のとおりです。
-nd
ディレクトリ階層の作成(つまり、ディレクトリなし)を防止します。
-r
再帰的な検索を可能にします。詳細については、再帰的ダウンロードを参照してください。
-P
すべてのファイルとディレクトリが保存されるディレクトリプレフィックスを設定します。
-A
特定のファイルタイプのみを取得するためのホワイトリストを設定します。文字列とパターンが受け入れられ、両方をコンマ区切りのリストで使用できます(上記参照)。詳細については、ファイルのタイプを参照してください。
-nd
上記に追加 すると機能します。次のような複数の-Aフラグを指定することもできます-A "*foo*" -A "*bar*"
--level=inf
か、ジョブを妨害する可能性がある--level=9999999999
ため、使用することを忘れないでください。wget
5
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/
複数のウェブサイトでこの問題を解決するシェルスクリプトを作成しました:https : //github.com/eduardschaeli/wget-image-scraper
(wgetを使用してURLのリストから画像をスクレイピングします)
マニュアルページによると、-Pフラグは次のとおりです。
-P prefix --directory-prefix = prefixディレクトリプレフィックスをプレフィックスに設定します。ディレクトリプレフィックスは、他のすべてのファイルとサブディレクトリが保存されるディレクトリ、つまり検索ツリーの最上位です。デフォルトはです。(現在のディレクトリ)。
つまり、宛先のみを指定し、ディレクトリツリーを保存する場所を指定します。ツリーを1つのディレクトリにフラット化しません。前述のように、-ndフラグは実際にそれを行います。
@Jon将来的には、フラグが何をするかを説明して、何かがどのように機能するかを理解することは有益です。
提案されたソリューションは、画像をダウンロードするのに最適であり、使用しているディレクトリにすべてのファイルを保存するだけで十分な場合。ただし、サイトの階層ツリー全体を複製せずに、指定したディレクトリにすべての画像を保存する場合は、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がサブディレクトリを作成するのを防ぎ、指定したディレクトリにすべてのファイルを保存します。深い構造のサイトを扱っています。
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