kNakajima's Blog

技術系のアウトプットブログです。

PythonでWeb APIを利用する方法

Web APIは、多くのWebサービスで提供されています。

本記事では、PythonでどのようにAPIリクエストを送信するのかを解説します。

サンプルとして、iTunes APIを利用して、映画情報を取得するコードをPythonで書いてみます。

PythonでWeb APIを利用する方法

利用するライブラリ

PythonでのAPIリクエストはrequestsを利用して行います。下記のコマンドでインストール可能です。

pip install requests

基本的な使い方は以下の通りです。 urlには、APIのエンドポイントのURLを書き込みます。 paramsには、辞書型でクエリを入れます。

import requests

requests.get(url, params=params)

また、公式ドキュメントに書かれているように、リクエストの結果は、下記のようにステータスコード, json形式で確認することができます。

import requests

result = requests.get(url, params=params)

result.status_code  # ステータスコードを表示
result.json()       # jsonファイルが辞書型で返される

iTunes APIで試す

それでは、実際にiTunes APIで試してみましょう。 今回は、キーワードに「ハリー・ポッター」を指定して、ジャンルを「映画」とすることで、「ハリー・ポッター」シリーズの映画情報を取得してみます。

また、iTunes APIの詳細はこちらがわかりやすいです。

上記のページから、各クエリを確認します。必須クエリは、termcountryです。termには今回調べたい「ハリー・ポッター」を指定して、日本語情報が欲しいので、countryにはjaを指定します。また、映画に関する情報が欲しいため、mediaにはmovieを指定します。

import requests

url = 'https://itunes.apple.com/search'
params = {'term': 'ハリー・ポッター', 'country': 'jp', 'media':'movie'}

results = requests.get(url, params=params).json()

条件に合った映画情報が辞書型で返されます。この状態だとごちゃごちゃしていて、よくわからないので、辞書キーの1つであるtrackNameで検索してみましょう。

for result in results['results']:
    print(result['trackName'])

すると、下記のように映画タイトルを取得することができます。

ハリー・ポッターと秘密の部屋 (字幕/吹替)
ハリー・ポッターとアズカバンの囚人 (字幕/吹替)
ハリー・ポッターと不死鳥の騎士団 (字幕/吹替)
ハリー・ポッターと賢者の石 (字幕/吹替)
ハリー・ポッターと炎のゴブレット (字幕/吹替)
ハリー・ポッターと死の秘宝 PART 1 (字幕/吹替)
ハリー・ポッターと死の秘宝 PART 2 (字幕/吹替)
ハリー・ポッターと謎のプリンス (字幕/吹替)