最近、ディープラーニングで機械学習を行う際に大量の画像をダウンロードする機会がありましたので、その際に考えた効率のいい画像の一括ダウンロード方法を紹介致します。
まず、以下のようにネットに落ちている画像URLをテキストファイルにまとめます。
urls.txt
http://aaaaaaaaaaaaaaaaa/hoge.jpg
http://bbbbbbbbbbbbbbbbb/moge.jpg
http://ccccccccccccccccc/foo.jpg
http://ccccccccccccccccc/bar.jpg
http://ddddddddddddddddd/hoge.jpg
http://eeeeeeeeeeeeeeeee/moge.jpg
http://fffffffffffffffff/foo.jpg
http://ggggggggggggggggg/bar.jpg
そして、ターミナルを起動し、このテキストファイルが保存されているディレクトリへと移動する。
$ cd (urls.txtのあるディレクトリパス)
移動したら、以下のコマンドを打ちます。
$ sed "s/^/curl -O /g" urls.txt > (任意の名前).sh
これで、以下の様なURLの先頭に「curl -O 」が付加されたシェルスクリプトが生成されます。
(任意の名前).sh
curl -O http://aaaaaaaaaaaaaaaaa/hoge.jpg
curl -O http://bbbbbbbbbbbbbbbbb/moge.jpg
curl -O http://ccccccccccccccccc/foo.jpg
curl -O http://ccccccccccccccccc/bar.jpg
curl -O http://ddddddddddddddddd/hoge.jpg
curl -O http://eeeeeeeeeeeeeeeee/moge.jpg
curl -O http://fffffffffffffffff/foo.jpg
curl -O http://ggggggggggggggggg/bar.jpg
そして、画像を保存したいフォルダを先に作っておき、その中に移動します。
今回はimagesフォルダを現在自分がいる階層に作成します
$ mkdir images
$ cd images/
そして、そのフォルダ内にいる状態でシェルスクリプトを実行します。
$ sh ../(任意の名前).sh
すると、以下のようにダウンロードが始まり、imagesフォルダに画像が溜まり始めます。

以上です。