LoginSignup
0
0

More than 5 years have passed since last update.

FlickrAPIでの画像取得

Posted at

はじめに

deep learningで画像識別を使用と思ったので学習用の画像をFlickrAPIを使って画像を集めるときのメモです。
使用したpythonのバージョンは3.6です。

FlickrAPIライブラリのインストール

pythonでFlickrAPIを使うためのライブラリをpipを使ってインストールします。

pip install flickrapi

コード

あらかじめ、APIの公開鍵と秘密鍵を入手しておいてください。
また、最後にtime.sleep()などで少し時間をおいて画像を保存するようにすると、サーバーに負荷が軽減されるのでいいです。

download.py
from flickrapi import FlickrAPI
from urllib.request import urlretrieve
from pprint import pprint
import os,time,sys

#キーの作成
key = "公開鍵の番号"
secret = "秘密鍵の番号"
wait_time = 1
#コマンドラインで保存先と検索する名前を指定する
AnimalName = sys.argv[1]
#保存先の指定
SaveDir = "./" + AnimalName
#APIキーの作成
flickrapi = FlickrAPI(key,secret,format='parsed-json')
#検索する
result = flickrapi.photos.search(
    text = AnimalName,
    per_page = 400,
    media = 'photos',
    sort = 'relevance',
    safe_search=1,
    extras = 'url_q,licence'
)
#結果の表示
photos = result['photos']
#pprint(photos)

for i ,photos in enumerate(photos['photo']):
    url_q = photos['url_q']
    filepath = SaveDir + '/' + photos['id'] + '.jpg'
    if os.path.exists(filepath):continue
    urlretrieve(url_q,filepath)
    time.sleep(wait_time)

このプログラムは第一引数に保存先を指定しているのでこのファイルの保存先と同じ名前のディレクトリをあらかじめ作っておく必要があります。
たとえば、牛の画像を保存するときにcowと第一引数に指定するときにディレクトリ構成は以下のようにしておく必要があります。

root/
 ├─download.py
 └─cow
0
0
0

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
0
0