はじめに
ディレクトリ・リスティングで表示されたファイルを一括ダウンロードしたいときがあったのですが、スクレイピングの応用でダウンロードしようとしたところ、うまくいきませんでした。
調べてみると、wgetやcurlなどのコマンドから楽々ダウンロードできるようです。
コマンド
wget -r -np -nH --cut-dirs=2 -R index.html http://hostname/dir/
- -r:再帰的にダウンロードする
- -np:親ディレクトリはダウンロードしない
- -nH:ホスト名のディレクトリは保存しない
- –cut-dirs:指定された階層以下をダウンロードする
- -R:指定されたファイルはダウンロードしない
上記のオプションを指定して実行した場合、http://hostnameのdir/以下のファイルをダウンロードすることができます。
仮に、http://hostname/exclude/というディレクトリがあっても、cut-dirsオプションに2が指定されているため、exclude/以下は無視されます。
おわり
ディレクトリも含めたダウンロードができるので、とても便利!
引用
- How to download HTTP directory with all files and sub-directories as they appear on the online files/folders list?
- 【 wget 】コマンド――URLを指定してファイルをダウンロードする