【楽天レシピAPI】Pythonで楽天人気レシピ情報を抽出してみる

この記事で解決するお悩み
  • 楽天レシピAPIとは?
  • 楽天レシピAPIの使い方が分からない
  • 楽天レシピAPIを使って、人気のレシピ情報を抽出したい

楽天レシピAPIとは

楽天レシピAPIとは、Rakuten Webserviceが提供する「楽天レシピカテゴリ別ランキングAPI」のことで、誰でも無料で、簡単に利用ができます。
Pythonなどのプログラミングを使うことで、指定したカテゴリの上位4つまでのレシピ情報(レシピタイトル、レシピURL、画像URL、投稿者情、材料名の一覧、調理時間目安、費用の目安など)を取得することができます。

今回は、このAPIを用いたPythonでのカテゴリ別レシピランキングの抽出方法、そして抽出したデータのCSVへの保存方法を紹介します。Pythonのソースコードも載せてあるのでコピペですぐ対応できます。

事前準備:アプリID発行

楽天APIのアプリ登録が済んでいない方(アプリケーションIDをまだ発行していない方)はRakuten Webserviceのページの「アプリID発行」から登録・ID発行を済ませてください。(下記画像青枠部分)

Pythonソースコード

では、早速ソースコードに移ります。今回は、指定したカテゴリ内で4位までの下記レシピ情報を抽出する仕様となっています。

  • 順位
  • レシピID
  • レシピタイトル
  • レシピ説明文
  • レシピURL
  • 料理画像URL
  • 予算
  • 料理時間
  • レシピ材料
  • レシピ発行日

ソースコードのうち各自で書き変えるポイントは以下2点です。

  1. 11行目(アプリID)に、「事前準備」で発行したアプリIDを入力
  2. 14行目(カテゴリID)に、絞りたいレシピカテゴリIDを入力

2のレシピのカテゴリIDについてはこちらの記事で、カテゴリID一覧と調べ方紹介しているので、ぜひ参考にしてみてください。今回のサンプルコードには、例として「鶏肉料理」のカテゴリID(31-335)を入力してあります。

import requests
import pandas as pd
import json
from pandas import json_normalize


#urlの作成
base_url = 'https://app.rakuten.co.jp/services/api/Recipe/CategoryRanking/20170426?' #レシピランキングAPIのベースとなるURL

item_parameters = {
            'applicationId': '自分のアプリID', #アプリID
            'format': 'json',
            'formatVersion': 2,
            'categoryId':'31-335' #例として鶏肉料理のカテゴリID入れています
}


#jsonデータの取得
#各カテゴリの4位までのレシピ情報取得
r = requests.get(base_url, params=item_parameters)
item_data = r.json()

#各レシピ情報の格納用に、データフレーム用意
df_rank = pd.DataFrame(columns=[
    'rank', #順位
    'recipeId', #レシピID
    'recipeTitle', #レシピタイトル
    'recipeDescription', #レシピ説明文
    'recipeUrl', #レシピURL
    'foodImageUrl', #料理画像URL
    'recipeCost', #予算
    'recipeIndication', #料理時間
    'recipeMaterial',  #レシピ材料
    'recipePublishday' #レシピ発行日
])

#各レシピの取得項目を抽出
for recipe in item_data['result']:
        df_rank = df_rank.append(
            {'rank':recipe['rank'],
             'recipeId':recipe['recipeId'],
             'recipeTitle':recipe['recipeTitle'],
             'recipeDescription':recipe['recipeDescription'],
             'recipeUrl':recipe['recipeUrl'],
             'foodImageUrl':recipe['foodImageUrl'],
             'recipeCost':recipe['recipeCost'],
             'recipeIndication':recipe['recipeIndication'],
             'recipeMaterial':recipe['recipeMaterial'],
             'recipePublishday':recipe['recipePublishday'],},
            ignore_index=True)

#データフレームをcsvに出力
df_rank.to_csv('recipe_rank.csv', index=False,  encoding='utf_8_sig')

ちなみに出力されたCSVを見てみると、このようになり、きちんと取得したい項目が抽出できているのが分かります。もちろんCSVに変換する前のデータフレームも同様です。

今回は、順位、レシピID、レシピタイトル、レシピ説明文、レシピURL、料理画像URL、予算、料理時間、レシピ材料、レシピ発行日といったレシピ情報を抽出するスクリプトとなっていますが、他にも「投稿者情報」等も抽出できます。さらにカスタマイズしてAPIを使用されたい方はぜひ、公式の楽天レシピAPI詳細ページをご参照ください。

コメントを残す

メールアドレスが公開されることはありません。