2
0

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 3 years have passed since last update.

ぐるなびAPIアクセス方法

Posted at

ぐるなびAPIアクセス方法

※こちらは自分が忘れないようにするメモ書きです。

①以下のURLにアクセスし、アカウントを作成。
https://api.gnavi.co.jp/api/

②キーが発行されるので、コピーする。

③レストランAPIにアクセスする。
例:住所が銀座の寿司屋
※リクエストできるパラメータは「https://api.gnavi.co.jp/RestSearchAPI/v3/」参照

https://api.gnavi.co.jp/RestSearchAPI/v3/?keyid=②で発行されたキー&address=%E9%8A%80%E5%BA%A7&category_s=RSFST03001

④解説
レストラン検索API:https://api.gnavi.co.jp/RestSearchAPI/v3/
keyid:②で発行されたキー
address:住所
category_s:レストランの系統(寿司屋、焼肉屋etc...)
※category_sは以下「小業態マスタ取得API」にアクセスすることで取得できる。
https://api.gnavi.co.jp/master/CategorySmallSearchAPI/v3/?keyid=②で発行されたキー

⑤Pythonでアクセスする
※住所が銀座の寿司屋の店名の一覧を出力します。
※店名以外を出力したい場合、print(url)で出力したURLにブラウザからアクセスし、
dic.get("キー")でキーを指定する。

access_gurunabi.py
# モジュールのインポート
import json
import urllib.request
import ssl

#認証方法をTLSv1に指定
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)

# API に渡すパラメータの値の指定
# https://api.gnavi.co.jp/api/manual/restsearch/
# https://api.gnavi.co.jp/api/tools/     #ここでAPIのテストができる
base_url = "https://api.gnavi.co.jp/RestSearchAPI/v3/"

key = で発行されたキー

##### 上記の key は、ぐるなびAPI のアカウントを作成した際、取得したkeyidを指定
# shop_name = "焼肉" #店名も含める場合はコメントアウト外す
g_code = 'RSFST03001' # 寿司のコード
address = '銀座'
# API を使う関数の定義
def gnavi_api(g_code,address):
    params = urllib.parse.urlencode({   
        'keyid': key,
        # 'name' : shop_name, #店名も含める場合はコメントアウト外す
        'category_s' : g_code,
        'address' : address
    })
    url = base_url + '?' + params
    print(url)
    response = urllib.request.urlopen(url,context=context)
    return response.read()

# 関数を使って、API から情報を取得
data = gnavi_api(g_code,address)

# 取得した情報をJSON形式から辞書型に変換
read_data = json.loads(data)["rest"]

# お店の名前の一覧を格納する list の作成
list_name = []

# お店ごとにループし、お店の名前を list に追加する関数の定義 
def get_name(read_data):
    for dic in read_data:
        list_name.append(dic.get("name")) 
        #list_name.append(dic.get("address")) #住所を取得したい場合はこちら
    return list_name

# 関数を実行し、お店の名前の list を取得
get_name(read_data)

print(list_name)

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?