Python

pythonで自動化してみよう  ~楽天市場の商品情報をAPIを利用してダウンロードしてみる~

こちらの記事は次のようなことを知りたいという方に向けて書いています。

  • pythonで自動的に情報をダウンロードする例を見てみたい!
  • pythonでAPIを使ってECサイトの商品情報がダウンロードできると聞いたけど、どうやってやるの?
  • 楽天市場の商品情報を一覧でダウンロードする方法はある?
まっすーです。中小企業診断士試験他多くの資格に、短期間で高得点で合格した実績をベースに数々の資格試験の合格アドバイスをしています。また、ITと会計に関する知識を元にしたコンサルティングが可能です。
今回は、楽天市場のAPIを活用した商品情報のダウンロード方法をご説明しますね。

pythonでAPIを利用した情報ダウンロード

APIの概要

APIとは、Application Programming Interfaceの略です。アプリケーションプログラムのインターフェースということですが、それだけだと意味不明ですね。

簡単に言うと、ユーザー側のアプリケーションプログラムと、サービスを提供しているWebサイト側との接続方法ということになります。

ここで、Webサイトを閲覧するときのユーザーの動きとWebサイトの反応、pythonを活用してスクレイピングをする場合のアプリケーションプログラムとWebサイトの反応を見てみましょう。

どちらの場合も、接続先のアプリケーションプログラムが、Webサイトの情報を表示していますね。その情報を、ユーザーが手動でWeb閲覧する場合は、Webサイトの情報を閲覧するのに対し、スクレイピングの場合は、データを自動でデータ化・出力(ダウンロード)します。

APIを使用する場合は、動きが異なります。

APIは、ユーザー側がアプリケーションプログラムで、サービス提供側のWebサイトに接続する際に、APIを呼び出して、そこでデータの提供をリクエストします。
つまり、楽天市場などのサービス提供側は、いちいちWebサイトで閲覧用の情報を表示する必要はなく、データだけ提供すればOKということになります。

つまり、動作が非常に高速、というメリットがあるんですね。

pythonでのAPIの利用方法

pythonでAPIを利用する場合、難しそうだな、という印象を持たれるかもしれませんが、実際はスクレイピングよりもずっと楽です。

なぜなら、スクレイピングはWebサイトのHTMLタグなどを詳細に分析して、必要なデータがどこにあるかを分析して、取得するためのプログラムを書く必要がありますが、APIを利用する場合は、最初からサービス提供側がどのようにプログラムを書けばデータが取得できるか教えてくれています。

プログラム構築に至るまでの時間がずっと短縮されることになりますので、もしAPIが利用可能であれば、是非利用しましょう。

一方で、APIを提供していない場合はどんなに頑張っても利用できません。
あくまで、サービス提供側がAPIを提供してくれていることが必要です。

それでは、APIの具体的な活用方法を見ていきましょう。

楽天市場でのAPIを利用した商品情報ダウンロード

ここでは、簡単に実装できる楽天APIを利用して、pythonで商品情報をダウンロードしてみましょう。

楽天市場APIの基本情報取得

まずは楽天APIの取得が必要です。楽天APIは特にユーザー登録などもせずに使用可能です。以下のリンクをクリックして、楽天ウェブサービス API一覧

楽天ウェブサービス API一覧

今回は楽天市場商品検索APIを使用します。
テストフォームのボタンをクリックします。

APIテストフォームが表示されます。

ここで、画面の下の方にいって、GETのボタンを押しましょう。

すると、下のウィンドウにデータが表示されます。
これがAPIで取得される情報になります。デフォルトでは取得形式をjsonにしていますので、json形式のデータが出力されています。

pythonプログラムのコード公開

さて、pythonで楽天市場APIを利用したデータの取得ですが、何をやりたいか?によってプログラムの組み方は異なります。

今回は、ひとまずお試しレベルでデータを取得できるプログラムを作成してみました。テレビゲームをジャンル指定して、そのランキングを1000位まで取得します。
商品名、商品ページのURL、商品価格、獲得ポイント(通常+店舗ポイント)、あるものはJANコード、在庫の有無(有=1、無=0)

データ解析用には、pandasライブラリを使用しています。

pythonによるAPIの利用の実践

プログラムの実行

このAPIを利用するpythonプログラムを実行してみます。

990件のデータが取得できました。
スクレイピングであれば、Webサイトの遷移を何回も何回も繰り返して、またサーバー攻撃のような形になってしまわないようある程度の時間をおいてアクセスしなければならないため、相当な時間がかかってしまいますが、APIを利用すると高速でデータの取得が可能です。

すべてのジャンルを指定してデータを取得するとしても、それほどの時間はかからないかもしれませんね。

出力結果確認

csvフォルダに格納された、出力されたcsvファイルを確認してみます。
こんな形でデータを取得できるんですね。

今後の活用方法

今回は検索条件を設定せず、ジャンルの設定のみをおこないランキングをそのまま読み込んでいました。

つまり、そのままデータを持ってきた形になっているため、このデータからわかることはランキング上位に来ている商品がどんなものか、ということがわかります。
上の例ですと、テレビゲームのジャンルだとNintendo Switchが優勢だな、ということがわかります。定価以上の販売データもあるんですね。

楽天APIを活用すれば、検索キーワードを指定したり、価格帯を指定したり、特定の店舗を指定したりすることができます。

それを考えれば以下のような使い方もできそうですね。

  • ライバル店の販売価格を取得して値付けの参考にする
  • 自社で販売している商品の価格設定の参考として利用する
  • ジャンル別の売れ筋商品情報を取得して、仕入れ戦略の立案に活用する

楽天市場だけでは足りないかもしれませんが、AmazonやYahooショッピングの情報なども取得できれば、様々な戦略に活用できそうです。

私も研究してみようと思います。

以上、ここまでお読みいただきましてありがとうございました。

ABOUT ME
まっすー
中小企業診断士のまっすーです。 社会保険労務士やITストラテジストなど、多くの難関資格に合格した実績をベースとした資格試験の学習方法、ExcelマクロやPythonを活用した自動化の推進、経営に役立つ管理会計の理論解説、ITを活用した経営資源の有効活用などの情報を発信しています。
関連記事 Releated post

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA