自分用のメモ。
動作環境
- 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
ソースコード