オークション商品データの構造

オークションの商品情報は、カテゴリ情報と商品リストから構成されています。

(1)カテゴリ情報

カテゴリは、カテゴリID"0"を起点にして、大きな樹形図になっていますが、一度のリクエストで取得できるカテゴリ情報は、1つの親カテゴリとその子カテゴリ全部のみです。このため、目的のカテゴリにたどり着くまで、階層数だけのリクエストが必要になります。

図5.カテゴリ情報の概念図

カテゴリ情報のリクエストURLは、http://auctions.yahooapis.jp/AuctionWebService/V2/categoryTree です。主なリクエスト引数とレスポンス要素は以下の通りです。

表2.カテゴリ情報の主なリクエスト引数

引数名 設定値
appid アプリケーションID
category 取得したいカテゴリID(最上位は0)

表3.カテゴリ情報の主なレスポンス要素

要素名 親要素 内容
ResultSet ルート要素
Result ResultSet 検索結果
ChildCategory Result 子カテゴリ(あるだけ繰り返し出現)
CategoryID Result、ChildCategory カテゴリID
CategoryName Result、ChildCategory カテゴリ名
CategoryPath Result、ChildCategory カテゴリのパス
IsLeaf Result、ChildCategory 末端カテゴリか否か
ParentCategoryID Result、ChildCategory 親カテゴリのID

(2)商品リスト

商品リストは、末端のカテゴリIDにのみ存在します。一度のリクエストで取得できる商品リストは、1ページ分(50件)です。このため、全商品を取得するには、ページを指定してページ数だけリクエストする必要があります。

図6.商品リストの概念図

商品リストのリクエストURLは、http://auctions.yahooapis.jp/AuctionWebService/V2/categoryLeafです。主なリクエスト引数とレスポンス要素は以下の通りです。

表4.商品リストの主なリクエスト引数

引数名 設定値
appid アプリケーションID
category 取得したいカテゴリID
page ページ番号
sort ソート項目。end:終了時間、cbids:現在価格など。未指定時はend。
order ソートの順番。a:昇順、d:降順

表5.商品リストの主なレスポンス要素

要素名 親要素 内容
ResultSet ルート要素
Result ResultSet 検索結果(1つだけ存在)
CategoryPath Result カテゴリのパス
Item Result 商品(あるだけ繰り返し出現)
Title Item 商品のタイトル
AuctionItemUrl Item 商品の詳細ページのURL
Seller Item 出品者の情報
Id Seller 出品者のYahoo JAPAN ID
CurrentPrice Item 現在価格
EndTime Item 終了時間

表6.商品リストのResultSet要素の属性

属性名 内容
totalResultsAvailable 当該カテゴリの全商品数
totalResultsReturned 取得された商品数
firstResultPosition 何番目から取得されたか

XML Schemaについて

XML SchemaとはXMLデータの記述ルールで、データベースのテーブル定義に相当します。 第3回の「XMLデータを取り込み、ワークシートに対応付ける」節では、[XML対応付け]の[XMLソースの選択]にXMLデータのURLを入力しました。この際「スキーマを参照していません」という警告に構わず[OK]をクリックしたので、Excelが解析を行い、対応付けを作ってくれました。

今回のカテゴリ情報には、XML Schemaが用意されていますので、これを使います。 ブラウザから以下のURLにアクセスしてください。

http://auctions.yahooapis.jp/AuctionWebService/V2/categoryTree.xsd

図7.ブラウザに表示されたXML Schema

このデータは後述の開発で使うので、名前を付けてファイルに保存しておいてください。

Excelによる開発

以下の手順で行います。なお、詳細な説明を省略している部分につきましては、「第3回 楽天書籍検索」と「第4回 YouTube動画検索」を必要に応じてご参照ください。

1.カテゴリシートを作成する
2.検索画面を作成する
3.共通の変数・定数を準備するVBAを記述する
4.カテゴリ情報取得のVBAを記述する
5.カテゴリ関連のVBAを記述する
6.商品リスト関連のVBAを記述する
7.その他必要なVBAを記述する