【楽天レシピAPI】レシピカテゴリID一覧&Pythonでの調べ方

この記事が解決するお悩み
  • 楽天レシピAPIのカテゴリIDが分からない
  • 楽天レシピAPIのカテゴリID一覧が知りたい
  • 楽天レシピAPIのカテゴリIDを自分で調べたい

はじめに

楽天レシピAPIとは、Rakuten Webserviceが提供する「楽天レシピカテゴリ別ランキングAPI」のことです。
このAPIではレシピのカテゴリ絞ってリクエストを送ると、カテゴリ内で最大4位までの「レシピタイトル」、「レシピURL」、「画像URL」、「投稿者情報」、「材料名の一覧」、「調理時間目安」、「費用の目安」などのレシピ情報が取得できます。
今回は、このカテゴリ別ランキングを調べる時に必須のレシピカテゴリID一覧と、Pythonを使ったカテゴリIDの調べ方を紹介します。「自分でプログラミング使ってカテゴリID調べたい!」、「最新のカテゴリID調べたい!」という方、おすすめの内容となっています。

楽天レシピカテゴリID一覧

楽天レシピではカテゴリレベルが大中小(親子孫)の3階層に別れています。大中小カテゴリ問わずカテゴリIDを使う際は、表中の「カテゴリID」を使ってください。(例. フライドポテト:30-717-2116)

注意点

中および小カテゴリでは、単体の中カテゴリ・小カテゴリではエラーが出ます。必ず以下のようにしてください。

カテゴリID:大カテゴリID-中カテゴリID-小カテゴリID

このような場合、

  • 大カテゴリ:人気メニュー(大カテゴリID:30)
  • 中カテゴリ:じゃがいも料理(中カテゴリID:717)
  • 小カテゴリ:フライドポテト(小カテゴリID:2116)

カテゴリIDは以下のようになります。

  • 人気メニュー:30
  • じゃがいも料理:30-717
  • 小カテゴリ料理:30-717-2116

カテゴリID一覧

以下、カテゴリID一覧です。

Pythonでの調べ方

事前準備

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

Pythonソースコード

以下Pythonのコードです。最終的にカテゴリID・一覧をCSVに出力できる仕様になっています。
ハイライトした9行目のアプリケーションIDを自分のアプリケーションIDに変更したら、コピペでOKです。

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

#urlの作成
base_url = 'https://app.rakuten.co.jp/services/api/Recipe/CategoryList/20170426' #ジャンル検索APIのベースとなるURL
item_parameters = {
            'applicationId': '自分のアプリケーションID',
            'format': 'json',
            'formatVersion': 2,
}

#全カテゴリレベルの前データ抽出
r = requests.get(base_url, params=item_parameters)
item_data = r.json()

#データ格納用にデータフレームを準備
df_category = pd.DataFrame(columns=['categoryL','categoryM','categoryS','categoryId','categoryName'])

#大カテゴリ
for category in item_data['result']['large']:
    df_category = df_category.append(
        {'categoryL':category['categoryId'],
        'categoryM':"",
         'categoryS':"",
        'categoryId':category['categoryId'],
        'categoryName':category['categoryName']},
        ignore_index=True)

#中カテゴリ
#小カテゴリの時のカテゴリID作成用に中カテゴリの親(大)カテゴリの辞書を用意
parent_dict = {} 
for category in item_data['result']['medium']:
    df_category = df_category.append(
        {'categoryL':category['parentCategoryId'],
         'categoryM':category['categoryId'],
         'categoryS':"",
         'categoryId':str(category['parentCategoryId'])+"-"+str(category['categoryId']),
         'categoryName':category['categoryName']},
        ignore_index=True)
    parent_dict[str(category['categoryId'])] = category['parentCategoryId']

#小カテゴリ
for category in item_data['result']['small']:
    df_category = df_category.append(
        {'categoryL':parent_dict[category['parentCategoryId']],
         'categoryM':category['parentCategoryId'],
         'categoryS':category['categoryId'],
         'categoryId':parent_dict[category['parentCategoryId']]+"-"+str(category['parentCategoryId'])+"-"+str(category['categoryId']),
         'categoryName':category['categoryName']},
        ignore_index=True)

#csvに出力
df_category.to_csv('category_id.csv', index=False,  encoding='utf_8_sig')

まとめ

このレシピカテゴリIDを使って、カテゴリを絞った人気レシピの検索もこちらで紹介しています。ぜひ参考にしてみてください。

コメントを残す

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