LoginSignup
10

More than 3 years have passed since last update.

[Python]Google images downloadを用いて簡単に画像取得

Posted at

Googleから画像を大量に取得してくれる便利なPythonライブラリがあったので使用方法をメモとして残しておきます。

動作環境

Windows10 Pro
Python 3.6

Google images download

Google images downloadとはHardik Vasaさんが作成したPythonスクリプトです
Github:https://github.com/hardikvasa/google-images-download

簡単に欲しい画像を取得してくれるので滅茶苦茶便利です

導入方法

インストール方法
pipかGitでインストールできますのでお好きな方でお試しください

私はpipでインストールしました

PS> pip install google_images_download

使用方法

以下のコマンドを端末を開いて実行します

PS> googleimagesdownload --keywords "<search_word>, <search_word>..." --limit <limit_number>

<search_word><limit_number>には具体的な値を代入してください
例)

PS> googleimagesdownload --keywords "りんご,もも" --limit 20

オプションの説明については公式ドキュメントに記載されていますのでそちらをご覧ください

実際に使用してみる

具体的な値を入れて画像を取得してみます。
検索ワード:りんご,もも
取得枚数 : 20
-oオプションでダウンロードしたいディレクトリ先のパスを設定しています
-oオプションを付けなければコマンドを実行したディレクトリ直下にdownloadsフォルダが作成されます

PS> googleimagesdownload --keywords "りんご,もも" --limit 20 -o "/fruit"
Item no.: 1 --> Item name = \u308a\u3093\u3054
Evaluating...
Starting Download...
Completed Image ====> 1.eyebg_center.jpg
Completed Image ====> 2.tsugaru.png
Completed Image ====> 3.wasefuji.png
Completed Image ====> 4.large.jpg
Completed Image ====> 5.Fotolia_144834045_Subscription_Monthly_M-e1511750334744.jpg
Completed Image ====> 6.sekaiichi.png
Completed Image ====> 7.51GHTXFiklL.jpg
Completed Image ====> 8.05036_2012_0115_IMG_4671.jpg
Completed Image ====> 9.joryu-box-2.jpg
Completed Image ====> 10.fuji.png
Completed Image ====> 11.07051618_595c92d5513e0.jpg
Completed Image ====> 12.51kmweJuOjL._SX425_.jpg
Completed Image ====> 13.41wPeSYQ47L.jpg
Completed Image ====> 14.jona.png
Completed Image ====> 15.0A3A7443.jpg
Completed Image ====> 16.IMG_7577.JPG
Completed Image ====> 17.17438.jpg
Completed Image ====> 18.fdfr_apple-1.jpg
Completed Image ====> 19.img_cc8194214c194a21ca74c28b4dda346a604634.jpg
Completed Image ====> 20.natsuakari.JPG

Errors: 0


Item no.: 2 --> Item name = \u3082\u3082
Evaluating...
Starting Download...
Completed Image ====> 1.o0800108811977554449.jpg
Completed Image ====> 2.t02200312_0800113511010460443.jpg
Completed Image ====> 3.17587190_1173094239482876_3589664121886343168_n-819x1024.jpg
Completed Image ====> 4.t02200310_0367051710420131740.jpg
Completed Image ====> 5.dd52a09052c43a346491162c23540598-15.jpg
Completed Image ====> 6.t01600170_0160017010203310557.jpg
Invalid or missing image format. Skipping...
Completed Image ====> 7.momo.jpg
Completed Image ====> 8.DSC_5434-600x600.jpg
Completed Image ====> 9.6abfb50b8030f24242e8bd15e02bb078.png
Completed Image ====> 10.o0800113612695828734.jpg
Completed Image ====> 11.momocrop_1280x960.jpg
Invalid or missing image format. Skipping...
Invalid or missing image format. Skipping...
Completed Image ====> 12.28818478937e3fb5a81d5c61f3f985e2.jpg
Completed Image ====> 13.ohtaniyuhya2.jpg
Completed Image ====> 14.momo0711.jpg
Completed Image ====> 15.8199e2a4b11b68fb7d7dfe354b342de8.jpg
Completed Image ====> 16.%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A31.png
Completed Image ====> 17.momo050-e1530415714668.jpg
Completed Image ====> 18.a6e9474b-e613-4aec-88e2-909a7c7b1467.jpg
Completed Image ====> 19.IjyQhYKS.jpg
Completed Image ====> 20.Twicemomo-e1460001081786.png

Errors: 3


Everything downloaded!
Total errors: 3
Total time taken: 21.02908730506897 Seconds

ダウンロードができればオプションで指定したディレクトリが作成され画像が保存されているはず!!
オプションで指定していなければdownloadsがコマンドを実行した直下に作成されています

PS C:\fruit> ls
    ディレクトリ: C:\fruit
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2019/06/13     11:44                もも
d-----       2019/06/13     11:43                りんご

できた!!滅茶苦茶簡単!!

最後に

Google images downloadの導入から使用するまで5分もかかりませんね
機械学習をしている人にとっては画像収集のツールとしてとてもワンダフルなものではないでしょうか
私自身も機械学習を勉強しているのでこれからもお世話になると思います

おまけ

google images downloadはライブラリとしてインポートすることが出来ます
自分で使いやすいようにPythonでカスタマイズしてみました

fetch_image.py
from google_images_download import google_images_download

def fetch_image(params_dict):
    response = google_images_download.googleimagesdownload()
    arguments = {
      "keywords"        : params_dict['search_keywords'],
      "limit"           : params_dict['limit'],
      "format"          : params_dict['image_format'],
      "output_directory": params_dict['output_directory'],
      "no_directory"    : True
    }
    response.download(arguments)

def input_argument():
    params_dict = {}

    search_keywords=input('search keywords:')
    while not search_keywords:
      search_keywords=input('search keywords:')

    limit=input('How much do you want a image?:')
    while not limit.isdigit():
      limit=input('How much do you want a image?:')

    print("0:'jpg',1:'gif',2:'png',3:'bmp',4:'svg',5:'webp',6:'ico',7:'raw'")
    image_format = ['jpg','gif','png','bmp','svg','webp','ico','raw']
    image_format_number = input('Please select image format number(0~7):')
    while not image_format_number.isdigit() or int(image_format_number) > 7:
      image_format_number = input('Please select image format number(0~7):')

    output_directory = input('Where are you saving download image?')
    if not output_directory:
      output_directory = 'downloads'

    params_dict['search_keywords'] = search_keywords
    params_dict['limit'] = limit
    params_dict['image_format'] = image_format[int(image_format_number)]
    params_dict['output_directory'] = output_directory

    return params_dict

def main():
    params_dict=input_argument()
    fetch_image(params_dict)

if __name__ == '__main__':
    main()

参考

Google images download Document

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10