オンラインのファイル/フォルダーリストに表示されるすべてのファイルとサブディレクトリを含むHTTPディレクトリをダウンロードするにはどうすればよいですか?


189

私がアクセスできるオンラインHTTPディレクトリがあります。経由ですべてのサブディレクトリとファイルをダウンロードしようとしましたwget。しかし、問題は、wgetサブindex.htmlディレクトリをダウンロードするときに、ファイル自体をダウンロードせずに、そのディレクトリ内のファイルのリストを含むファイルをダウンロードすることです。

サブディレクトリとファイルを深度制限なしでダウンロードする方法はありますか(ダウンロードしたいディレクトリが、自分のコンピュータにコピーしたいフォルダであるかのように)。

オンラインHTTPディレクトリ

回答:


357

解決:

wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

説明:

  • dddディレクトリ内のすべてのファイルとサブフォルダーをダウンロードします
  • -r :再帰的に
  • -npccc /…のような上位ディレクトリには行きません
  • -nH :ファイルをホスト名フォルダに保存しない
  • --cut-dirs=3:しかし、最初の3つのフォルダーaaabbbcccを省略してdddに保存します
  • -R index.htmlindex.html ファイルを除外する

リファレンス:http : //bmwieczorek.wordpress.com/2008/10/01/wget-recursively-download-all-files-from-certain-directory-listed-by-apache/


17
ありがとうございました!また、FYIによると、このあなたが使用できる-Rように-R css、すべてのCSSファイルを除外し、または使用する-Aように-A pdfのみダウンロードPDFファイルへ。
ジョン

7
ありがとう!wgetのmanページ からの追加のアドバイスWhen downloading from Internet servers, consider using the ‘-w’ option to introduce a delay between accesses to the server. The download will take a while longer, but the server administrator will not be alarmed by your rudeness.
jgrump2012

3
このエラーが表示される 'wget'は、内部または外部のコマンド、操作可能なプログラム、またはバッチファイルとして認識されません。
2017年

1
@hamish最初にwgetをインストールする必要があるか、wgetが$ PATHにありません。
明江市

16
正解robots.txtですが、ディレクトリ内のファイルのダウンロードを許可しないファイルがある場合、これは機能しません。その場合は、追加する必要があります-e robots=off unix.stackexchange.com/a/252564/10312を
ダニエルヘルシュコビッチ

45

VisualWGetを利用したこの投稿のおかげで、これを機能させることができました。それは私にとってはうまくいきました。重要な部分はフラグをチェックすることだと思われます(画像を参照)。-recursive

-no-parentフラグが重要であることもわかりました、そうでなければ、それはすべてをダウンロードしようとします。

ここに画像の説明を入力してください ここに画像の説明を入力してください


2
これを見つけました-2017年12月。sourceforge.net/projects/visualwgetで
SDsolar 2017

2
Windowsマシンで問題なく動作しました。回答に記載されているオプションをチェックインすることを忘れないでください。そうしないと動作しません
csharpcoder

特定のhttpsでは機能しません。@DaveLucre cmdソリューションでwgetを試してみた場合もダウンロードできますが、一部のサーバーではそれを許可していません
Yannis Dran

チェック--no-parentは何をしますか?
T.Todua

1
2020年3月に働いています!
プログラマー氏

7
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

から man wget

'-r' '--recursive' 再帰的な取得をオンにします。詳細については、再帰的ダウンロードを参照してください。デフォルトの最大深度は5です。

'-np' '--no-parent' 再帰的に取得するときに親ディレクトリに昇格しません。特定の階層の下にあるファイルのみがダウンロードされることが保証されるため、これは便利なオプションです。詳細については、ディレクトリベースの制限を参照してください。

'-nH' '--no-host-directories' ホスト接頭辞付きディレクトリの生成を無効にします。デフォルトでは、「-r http://fly.srk.fer.hr/」でWgetを呼び出すと、fly.srk.fer.hr /で始まるディレクトリの構造が作成されます。このオプションは、そのような動作を無効にします。

'--cut-dirs = number' 番号ディレクトリコンポーネントを無視します。これは、再帰的な検索が保存されるディレクトリをきめ細かく制御するのに役立ちます。

たとえば、 ' ftp://ftp.xemacs.org/pub/xemacs/ 'にあるディレクトリを見てみましょう。「-r」で取得すると、ローカルのftp.xemacs.org/pub/xemacs/に保存されます。「-nH」オプションを使用するとftp.xemacs.org/の部分を削除できますが、依然としてpub / xemacsのままです。ここで、 '-cut-dirs'が役立ちます。これにより、Wgetは多数のリモートディレクトリコンポーネントを「認識」できなくなります。以下に、「-cut-dirs」オプションの動作例をいくつか示します。

オプションなし-> ftp.xemacs.org/pub/xemacs/ -nH-> pub / xemacs / -nH --cut-dirs = 1-> xemacs / -nH --cut-dirs = 2->。

--cut-dirs = 1-> ftp.xemacs.org/xemacs/ ...ディレクトリ構造を削除するだけの場合、このオプションは「-nd」と「-P」の組み合わせに似ています。ただし、「-nd」とは異なり、「-cut-dirs」はサブディレクトリで失われません。たとえば、「-nH --cut-dirs = 1」では、beta /サブディレクトリはxemacs / betaに配置されます。人は期待するでしょう。


3
いくつかの説明は素晴らしいでしょう。
ブノワLatinier

VisualWgetを使用して特定のファイルタイプをダウンロードするのはどうですか?VisualWgetのディレクトリとそのサブディレクトリにあるmp3ファイルのみをダウンロードすることは可能ですか?
Jason

3

wget貴重なリソースであり、私が自分で使用するものです。ただし、アドレスにwget構文エラーとして識別される文字がある場合があります。私はそれに対する修正があると確信していますが、この質問は具体的には質問しなかったのでwget、このページに間違いなくつまずいて、学習曲線を必要としない迅速な修正を探す人々に代替案を提供すると思いました。

これを実行できるブラウザ拡張機能はいくつかありますが、ほとんどの場合、ダウンロードマネージャーをインストールする必要があります。これは、常に無料であるとは限らず、目障りで、多くのリソースを使用する傾向があります。これらの欠点のいずれもないHERESのもの:

「ダウンロードマスター」は、ディレクトリからのダウンロードに最適なGoogle Chromeの拡張機能です。ダウンロードするファイルタイプをフィルタリングするか、ディレクトリ全体をダウンロードするかを選択できます。

https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce

最新の機能リストとその他の情報については、開発者のブログのプロジェクトページにアクセスしてください。

http://monadownloadmaster.blogspot.com/


3

--use-pget-n=10コマンドに追加できるより大きなファイルがある場合は、ダウンロードのスイスアーミーナイフであるlftpを使用できます。

lftp -c 'mirror --parallel=100 https://example.com/files/ ;exit'

完全にそして本当に速く働きました、これは私のインターネット回線が何千もの小さなファイルをダウンロードするのを最大限にしました とても良い。
n13

完璧に動作します!! 最高のオプション!
ambigus9


2

ソフトウェアやプラグインは必要ありません!

(再帰的なdeptchが必要ない場合にのみ使用可能)

ブックマークレットを使用します。このリンクをブックマークにドラッグしてから、このコードを編集して貼り付けます。

(function(){ var arr=[], l=document.links; var ext=prompt("select extension for download (all links containing that, will be downloaded.", ".mp3"); for(var i=0; i<l.length; i++) { if(l[i].href.indexOf(ext) !== false){ l[i].setAttribute("download",l[i].text); l[i].click(); } } })();

(ファイルをダウンロードする場所から)ページに移動し、そのブックマークレットをクリックします。


-1

wgetは通常、この方法で機能しますが、サイトによっては問題が発生したり、不要なHTMLファイルが大量に作成されたりする場合があります。この作業を簡単にし、不必要なファイルの作成を防ぐために、私が自分で書いた最初のLinuxスクリプトであるgetwebfolderスクリプトを共有しています。このスクリプトは、パラメーターとして入力されたWebフォルダーのすべてのコンテンツをダウンロードします。

複数のファイルが含まれているwgetで開いているWebフォルダーをダウンロードしようとすると、wgetはindex.htmlという名前のファイルをダウンロードします。このファイルには、Webフォルダーのファイルリストが含まれています。私のスクリプトは、index.htmlファイルに記述されたファイル名をWebアドレスに変換し、wgetを使用してそれらを明確にダウンロードします。

Ubuntu 18.04とKali Linuxでテストされていますが、他のディストリビューションでも動作する可能性があります。

使用法 :

  • 以下のzipファイルからgetwebfolderファイルを抽出します

  • chmod +x getwebfolder (初回のみ)

  • ./getwebfolder webfolder_URL

といった ./getwebfolder http://example.com/example_folder/

リンクをダウンロード

ブログの詳細

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.