広告

pythonでホットペッパーのAPIを叩いてみた

ホットペッパーでイカしたお店探しをしてみたくなったので、pythonのAPIを叩いてみました。店舗検索のカスタマイズ性を高めたい場合は、とっても便利です。今回はpythonでホットペッパーのAPIを叩く方法を紹介します。

前提:pythonのAPIに送信する大まかな基礎情報

多くの人は大丈夫かと思いますがpythonのAPIを操作するには大体下記が必要です。

  • メソッド(GET,POST,PUT,DELETE)
  • ヘッダー(データの種類、認証情報など)
  • JSON形式で受信したいデータ情報

API操作に慣れていない人はこれを意識した状態で進むといいと思います。

ホットペッパーのAPIについて

ホットペッパー(リクルート)のAPIリファレンス

ホットペッパーのAPIリファレンスは下記URLから確認できます。

https://webservice.recruit.co.jp/doc/hotpepper/reference.html

APIの認証キーは「新規登録」が必要

ホットペッパーでAPIをたたくために必要な認証キー(APIキー)は、APIリファレンスで「新規登録」が必要です。また、APIキーはメールでしか確認できませんので、忘れないようにしましょう。(新規登録⇒APIリファレンス

メソッド

メソッドはGETメソッドを用いる。

※APIリファレンスに書いてあります。

リクエストURL

APIを叩く時のリクエストURLは下記です。

※変わっているかもしれませんのでAPIリファレンスを確認しましょう。

http://webservice.recruit.co.jp/hotpepper/gourmet/v1/

リクエスト時に設定するパラメータ

リクエストURLやAPIキーと共に、以下のパラメータを指定します。どんなパラメータがリクエストに必要なのかは、公式のAPIリファレンスで確認しましょう。

以下の情報は私が最低限必要な情報を抜粋しています。

  • 必須
    • APIキー
  • どれか最低1つ必要
    • id,name,name_kana,name_any,tel
    • special
    • special_or
    • large_service_area,service_area,large_area,middle_area,small_area
    • keyword
    • lat,lng,range
  • 他のデータ
    • どんな値を指定できるかは、APIリファレンスで確認すること
  • 指定した方が良いパラメータ
    • データ形式の初期値はxmlなので、json形式でデータが欲しいなら、formatは指定すること
    • データ取得件数を指定するならcount(初期値は10※最小1、最大100)

上記のパラメータに基づいて必要なデータを決めていきます。

今回ホットペッパーのAPIで取得するパラメータと認証

必要なパラメータは以下を指定します。

  • パラメータ
    • 最低1つ必要なパラメータの中から、keywordを選択※「恵比寿駅」のキーワードでお店を探す
    • 取得件数を15件にするため、countを設定

パラメータを決めたら、リクエストURLやAPIキーを用いてPythonでリクエストします。

PythonでホットペッパーのAPIを叩く

(その前に)必要なpythonのライブラリ

今回のAPIリクエストのために、requestsのライブラリを使用します。requestsをインストールしていない人は、pythonの環境で以下を操作する必要があります。

インストールしたら、実際のpythonコードを記述します。

Pythonのコード

次にリクエストURLを変数に格納します。
次に取得したAPIキーを変数に格納する。

私のAPIキーは隠しますので、皆さんが取得したAPIキーをxxxxの部分に入れてください。
変数に格納したAPIキーや他のパラメータをbodyの変数に格納します。
  • API_KEYは、前の工程で変数に入れたAPIキーが入ります。
  • keywordは、最低1つ以上必要なパラメータの中からキーワード検索を選択
  • json形式でデータが欲しいので、任意のパラメータformatを指定
  • データが15件欲しいので、countを指定

これらを指定したらリクエストをしてみましょう。

そうしたら、JSONデータの中から、15件の店名を表示させましょう。

これらを実行すると、以下のような結果が表示されます。
ホットペッパー Webサービス

jupyternotebookでホットペッパーAPIを叩いた結果

まとめ:APIは素晴らしい

APIを提供してくれるのはありがたいですね。ワンランク上のお店探しに必要な環境を提供してくれるホットペッパー(リクルート)さんに感謝です。

 ホットペッパー Webサービス