Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

楽天APIを使ってジャンルの一覧を取得する

Last updated at Posted at 2021-12-26

はじめに

楽天APIというものがあったのでpythonを使ってジャンル一覧を取得してみました!

準備

楽天のジャンルAPIのドキュメントには、以下のような形でapplicationIdの実行が必須である。

  • リクエストURL(REST/JSON形式の場合)
https://app.rakuten.co.jp/services/api/IchibaGenre/Search/20140222?
        applicationId=[アプリID]&
        genreId=0

applicationId取得方法

こちらのサイトへアクセスし、楽天会員のID, passwordを利用してログインする。
ログイン後、右上のアプリID発行ボタンから、アプリ名・URLを入力し、新規アプリ作成をクリック。
Screen Shot 2021-12-26 at 15.53.32.png

次のページに遷移し、以下が3つ発行される。

  • アプリID/デベロッパーID
  • application_secret
  • アフィリエイトID

※今回利用するのは発行されたアプリID

pythonでコーディング

第一階層目のジャンル取得

コード

import requests

RAKUTEN_GENRE_API_URL = 'https://app.rakuten.co.jp/services/api/IchibaGenre/Search/20140222'
params = {
    'applicationId': 'アプリID',
    'formatVersion': 2, 
    'genreId': 0,   
}
r = requests.get(RAKUTEN_GENRE_API_URL, params=params)
item_data = r.json()
  • formatVersionについて

formatVersion=1 の場合:
配列データに関して、以下の様にデータが返る。

{"items": [
    {"item": {
        "itemName": "a",
        "itemPrice": 10
    }},
    {"item": {
        "itemName": "b",
        "itemPrice": 20
    }}
]}

formatVersion=2 の場合:
下記のように、配列中の重複するオブジェクトが省略される。

{"items": [
    {
        "itemName": "a",
        "itemPrice": 10
    },
    {
        "itemName": "b",
        "itemPrice": 20
    }
]}

取得結果

以下のように39種類のジャンルが取得できた。

{'brothers': [],
 'children': [{'genreId': 100371, 'genreLevel': 1, 'genreName': 'レディースファッション'},
  {'genreId': 551177, 'genreLevel': 1, 'genreName': 'メンズファッション'},
  {'genreId': 100433, 'genreLevel': 1, 'genreName': 'インナー・下着・ナイトウェア'},
  {'genreId': 216131, 'genreLevel': 1, 'genreName': 'バッグ・小物・ブランド雑貨'},
  {'genreId': 558885, 'genreLevel': 1, 'genreName': '靴'},
  {'genreId': 558929, 'genreLevel': 1, 'genreName': '腕時計'},
  {'genreId': 216129, 'genreLevel': 1, 'genreName': 'ジュエリー・アクセサリー'},
  {'genreId': 100533, 'genreLevel': 1, 'genreName': 'キッズ・ベビー・マタニティ'},
  {'genreId': 566382, 'genreLevel': 1, 'genreName': 'おもちゃ'},
  {'genreId': 101070, 'genreLevel': 1, 'genreName': 'スポーツ・アウトドア'},
  {'genreId': 562637, 'genreLevel': 1, 'genreName': '家電'},
  {'genreId': 211742, 'genreLevel': 1, 'genreName': 'TV・オーディオ・カメラ'},
  {'genreId': 100026, 'genreLevel': 1, 'genreName': 'パソコン・周辺機器'},
  {'genreId': 564500, 'genreLevel': 1, 'genreName': 'スマートフォン・タブレット'},
  {'genreId': 565004, 'genreLevel': 1, 'genreName': '光回線・モバイル通信'},
  {'genreId': 100227, 'genreLevel': 1, 'genreName': '食品'},
  {'genreId': 551167, 'genreLevel': 1, 'genreName': 'スイーツ・お菓子'},
  {'genreId': 100316, 'genreLevel': 1, 'genreName': '水・ソフトドリンク'},
  {'genreId': 510915, 'genreLevel': 1, 'genreName': 'ビール・洋酒'},
  {'genreId': 510901, 'genreLevel': 1, 'genreName': '日本酒・焼酎'},
  {'genreId': 100804, 'genreLevel': 1, 'genreName': 'インテリア・寝具・収納'},
  {'genreId': 215783, 'genreLevel': 1, 'genreName': '日用品雑貨・文房具・手芸'},
  {'genreId': 558944, 'genreLevel': 1, 'genreName': 'キッチン用品・食器・調理器具'},
  {'genreId': 200162, 'genreLevel': 1, 'genreName': '本・雑誌・コミック'},
  {'genreId': 101240, 'genreLevel': 1, 'genreName': 'CD・DVD'},
  {'genreId': 101205, 'genreLevel': 1, 'genreName': 'テレビゲーム'},
  {'genreId': 101164, 'genreLevel': 1, 'genreName': 'ホビー'},
  {'genreId': 112493, 'genreLevel': 1, 'genreName': '楽器・音響機器'},
  {'genreId': 101114, 'genreLevel': 1, 'genreName': '車・バイク'},
  {'genreId': 503190, 'genreLevel': 1, 'genreName': '車用品・バイク用品'},
  {'genreId': 100939, 'genreLevel': 1, 'genreName': '美容・コスメ・香水'},
  {'genreId': 100938, 'genreLevel': 1, 'genreName': 'ダイエット・健康'},
  {'genreId': 551169, 'genreLevel': 1, 'genreName': '医薬品・コンタクト・介護'},
  {'genreId': 101213, 'genreLevel': 1, 'genreName': 'ペット・ペットグッズ'},
  {'genreId': 100005, 'genreLevel': 1, 'genreName': '花・ガーデン・DIY'},
  {'genreId': 101438, 'genreLevel': 1, 'genreName': 'サービス・リフォーム'},
  {'genreId': 111427, 'genreLevel': 1, 'genreName': '住宅・不動産'},
  {'genreId': 101381, 'genreLevel': 1, 'genreName': 'カタログギフト・チケット'},
  {'genreId': 100000, 'genreLevel': 1, 'genreName': '百貨店・総合通販・ギフト'}],
 'current': {'genreId': 0, 'genreLevel': 0, 'genreName': ''},
 'parents': [],
 'tagGroups': []}

第二階層以下のジャンルは、上位階層の'genreId'をAPIに与えてあげることで取得可能

おわりに

楽天のAPIで簡単にジャンルの取得ができました。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?