Pythonのrequestsを使うとWebAPIが簡単にたたける。今回は例としてFlickrでの検索を行う
##Install
PyPiに登録されているのでpipまたはeasy_installを使ってインストール
$ pip install requests
or
$ easy_install -U requests
##API Keyの取得
Flickrのアカウントを持っていない場合は必要に応じて取得する。
下記のアドレスにアクセスしアプリケーションの登録を行いAPI KeyとSECRETを入手する。非商用ならNon-Commercialで登録する。
https://www.flickr.com/services/apps/create/apply/
##Flickrで検索
###サンプルコード
API keyとSecretが取得できたら下記のようにいくつかのパラメータを設定しrequestsでGETすることでJSON形式でデータを取得することができる。
# -*- coding: utf-8 -*-
import json
import requests
url = 'https://api.flickr.com/services/rest/'
API_KEY = 'YOUR_API_KEY'
SECRET_KEY = 'YOUR_SECRET_KEY'
query = {
'method': 'flickr.photos.search',
'api_key': API_KEY,
'text': 'sky', #検索ワード
'per_page': '5', #1ページ辺りのデータ数
'format': 'json',
'nojsoncallback': '1'
}
r = requests.get(url, params=query)
print r
print json.dumps(r.json(), sort_keys=True, indent=2)
flickr.photos.search
の設定可能なパラメータは下記を参照
flickr.photos.search
###レスポンス
上記プログラムのレスポンスは下記のようになる
(レスポンスのデータはFlickrの状況に依存するため必ずしも一致しない)
<Response [200]>
{
"photos": {
"page": 1,
"pages": 13568371,
"perpage": 2,
"photo": [
{
"farm": 6,
"id": "14914864943",
"isfamily": 0,
"isfriend": 0,
"ispublic": 1,
"owner": "124218704@N03",
"secret": "593dc8728a",
"server": "5606",
"title": "P1010144"
},
{
"farm": 6,
"id": "15349495280",
"isfamily": 0,
"isfriend": 0,
"ispublic": 1,
"owner": "24213796@N02",
"secret": "ef0aa50b3f",
"server": "5603",
"title": "Hot Air Balloon"
}
],
"total": "27136741"
},
"stat": "ok"
}
##画像の取得
実際の画像は下記のレスポンスで得られたパラメータを下記のフォーマットURLを作成することで取得できる。
http://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}.jpg