Python
google
Python3

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

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