Yahoo!JAPANのWebAPIで商品カテゴリIDを一括取得する方法

こんにちはー。管理人のピヨ猫でーす。

Yahoo!JAPNの商品APIを試しているんだけどAPIのパラメタに指定する商品カテゴリIDの取得方法が分からないんだ( ;∀;)

疑問がある

商品カテゴリIDを取得するにはカテゴリID取得APIを使うんだ。やり方を説明するね。

記事の説明です

 

1.>Yahoo!JAPNのAPIとは?

API(エーピーアイ)とは

API(エーピーアイ)はApplication Programming Interface(アプリケーション プログラミング インターフェース)のことです。
簡単にいうとプログラムから色々な機能を使うライブラリのことです。
APIを使うと、Windowsが備えている機能や、Android端末が備えている機能を、アプリケーションから使うことが出来ます。

最近は、GoogleやAmazon、Yahooなどのクラウドサービスが備える機能もAPIを使って使える様になりました。
クラウドサービスが備える機能を使うAPIはWeb APIと言います。

Yahoo!JAPANのWeb API

Yahoo!JAPANは、Yahoo!ショッピング、ヤフオク!、Yahoo!知恵袋などのデータや機能にアクセスするためのWeb APIを提供しています。
商用目的でなければ無料で使うことが出来ます。

Yahoo!JAPAN WebAPI
https://developer.yahoo.co.jp/sitemap/

Yahoo!JAPANのWeb APIで何が出来るの?

何を作るかは貴方次第です。
Yahoo!JAPANのAPIを使うことでYahoo!JAPANの豊富なデータや機能を使うことが出来るので、アイディア次第で色々なことが出来ると思います。

こちらは管理人のぴよ猫が作成したツールです。
Yahoo!JAPANの商品サイトのレビューをYahoo!JAPANのWeb APIで抽出し、AIでレビューを評価し、商品のランク付けをしてみました。
家電製品をAIが評価ツール・オンライン
家電製品をAIが評価ツール・オンライン

2.Yahoo!JAPNのカテゴリID取得API

カテゴリID取得API

Yahoo!JAPANの商品参照APIなどの検索パラメタには商品カテゴリIDが必要となります。
しかし、Yahoo!JAPANの商品カテゴリIDはネット上に公開されていません。(ぴよ猫は見つけられませんでした。)

Yahoo!JAPANの商品カテゴリIDを取得するにはカテゴリID取得APIを使用します。

カテゴリID取得APIの利用方法

オンラインマニュアル

Yahoo!JAPN デベロッパーネットワークトップ > ショッピング > カテゴリID取得

リクエストURL

https://shopping.yahooapis.jp/ShoppingWebService/V1/categorySearch

主要なリクエストパラメータ

パラメータ 説明
appid(必須) string アプリケーションID。
category_id(必須) integer カテゴリIDを指定。category_id=1のときルートカテゴリを返す(第1階層)

主要なレスポンス項目

項目 説明
/ResultSet/Result/Categories/Current/Id カテゴリID
/ResultSet/Result/Categories/Current/Title/Short カテゴリ名
/ResultSet/Result/Categories/Current/Title/Medium カテゴリパス名1

カテゴリID取得APIの実行方法(Python)

import requests
import xmltodict
import pprint

appid="あなたのアプリケーションID"
categoryApi = "https://shopping.yahooapis.jp/ShoppingWebService/V1/categorySearch?appid={appid}&category_id={category_id}"
category_id = "2505" #検索カテゴリID(家電)

# カテゴリID取得API実行
url = categoryApi.format(appid=appid, category_id=category_id)
r = requests.get(url)

# 結果の取得
data = xmltodict.parse(r.text)
pprint.pprint(data)

3.Yahoo!JAPNの商品カテゴリを一括取得する方法

Yahoo!JAPANの商品カテゴリは階層構造になっている

Yahoo!JAPANの商品カテゴリは階層構造になっています。
カテゴリ取得APIで取得できるカテゴリの一覧は1階層のみとなります。

そのため、Yahoo!JAPANの商品カテゴリの全てを取得するには、カテゴリ取得APIを再帰呼び出しする必要があります。

Yahoo!JAPANの商品カテゴリを一括取得する方法(Python)

import requests
import xmltodict
import pprint

appid="あなたのアプリケーションID"
categoryApi = "https://shopping.yahooapis.jp/ShoppingWebService/V1/categorySearch?appid={appid}&category_id={category_id}"

def categorySearch(category_id, index):
  # REST URLの作成
  url = categoryApi.format(appid=appid, category_id=category_id)

  # API実行
  r = requests.get(url)

  # 結果の取得
  data = xmltodict.parse(r.text)
  if data['ResultSet']['Result']['Categories']['Children'] is not None:
    # 取得したカテゴリの一覧を標準出力に出力
    for rec in data['ResultSet']['Result']['Categories']['Children']['Child']:
      print(index + rec['Id'] + ':' + rec['Title']['Medium'])
      # 取得したカテゴリIDの子カテゴリを出力(再起実行)
      categorySearch(rec['Id'], index + "  ")

# カテゴリ一覧一括取得
categorySearch("1", "")  # 1=ルートカテゴリID

カテゴリ一覧の出力結果(抜粋)

50532:テレビ、映像機器
13457:ファッション
  2494:レディースファッション
    37019:レディースコート
      37020:レディースステンカラーコート
      37021:レディースチェスターコート
      37022:レディースノーカラーコート
      37025:レディーストレンチコート
      37032:レディースモッズ、ミリタリーコート
      37023:レディースPコート
      37028:レディースダッフルコート
      37031:レディースキルティングコート
      48218:レディース中綿コート
      37029:レディースダウンコート
・・・

4.Yahoo!JAPNの商品カテゴリID取得APIまとめ

すごく簡単に商品カテゴリの一覧が取得できました。
なんで、Yahooの商品カテゴリはネットで検索しても一覧が無いんだろうと思っていたら、すごく量が多いのですね・・・。
全カテゴリの表示が終わるまで10分以上かかりました(-_-;)

カテゴリIDを知りたいという需要があまりないのかなと思っていましたが、これだけ量が多いと、一つのページに一覧を載せると、ページが重くなるのも一因かもしれません。

商品ってこんなに細かくカテゴライズされているんですね・・・。
これだけ、細分化されたカテゴリ情報だと、これだけで、何かに使えそうな気もします。
アイディアが出たら、記事にしてみたいと思います。

宜しくね

広告




スポンサーリンク
広告




広告




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
広告