LoginSignup
8
9

More than 3 years have passed since last update.

PythonでFlickr APIから画像取得

Posted at

自分用のメモ。

動作環境

  • macOS Mojave 10.14
  • Python 3.6.8
  • flickapi 2.4

事前準備

flickr APIキーの取得 及び ライブラリ(flickapi)のインストール方法はこちらを参考

コード

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

# 「事前準備」で取得したAPI KeyとSecret Keyを設定
key = "XXXXXXXXXX"
secret = "XXXXXXXXXX"

# 1秒間隔でデータを取得(サーバー側が逼迫するため)
wait_time = 1

# 検索キーワード(実行時にファイル名の後に指定)
keyword = sys.argv[1]
# 保存フォルダ
savedir = "./" + keyword

# 接続クライアントの作成とサーチの実行
flickr = FlickrAPI(key, secret, format='parsed-json')
result = flickr.photos.search(
    text = keyword,           # 検索キーワード
    per_page = 100,           # 取得データ数
    media = 'photos',         # 写真を集める
    sort = 'relevance',       # 最新のものから取得
    safe_search = 1,          # 暴力的な画像を避ける
    extras = 'url_q, license' # 余分に取得する情報(ダウンロード用のURL、ライセンス)
)

# 結果の取り出しと格納
photos = result['photos']

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

実行方法

  • 事前に"検索キーワード"となる保存フォルダを"download.py"と同じ階層に作成しておく
  • 保存フォルダを作成後、下記のように実行する("Keyword"はflickrで検索する文字)
terminal
$ python download.py Keyword

ソースコード

8
9
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
8
9