WebAPIを使って街中のラーメン屋の情報を取得してみる。
環境
OS:Windows 10
言語:Python 3.10
対象WebAPl:ホットペッパーグルメリサーチAPI
今回使うモジュールは、
・Json,requests,random
流れとして
1.requestsでラーメン屋の情報を取得する。
2.Jsonファイルを辞書として読み込ませる。
3.ランダムで一軒表示させる。
まず1,2をやってみる。
import json
import requests
gourmet='http://webservice.recruit.co.jp/hotpepper/gourmet/v1/'
APIKEY = apikey #自分で取得してね。
genre = 'G013' #ラーメン
middleid = 'Y505' #札幌、大通
url = gourmet + "?key=" + APIKEY + '&middle_area='+ middleid +'&genre=' + genre +'&format=json'
#jsonを用いて書くためフォーマットをjsonにしておく。
l = requests.get(url) #getで情報を取得
lunch = json.loads(l.text) #jsonファイルを辞書として読み込む
print(lunch) #出力する。
実行結果
{'results': {'api_version': '1.26', 'results_available': 14, 'results_returned': '10', 'results_start': 1, 'shop':
[{'access': 'JR札幌駅/地下鉄南北線・東豊線 さっぽろ駅 徒歩2分', 'address': '北海道札幌市北区北7条西2丁目20\u3000東京建物札幌ビルB1F',
'band': '不可', 'barrier_free': 'なし', 'budget': {'average': '1000円', 'code': 'B011', 'name': '1001~1500円'},
'budget_memo': '油そば・台湾まぜそば・坦々麺\u3000680円~', 'capacity': 20, 'card': '利用不可', 'catch': '札幌駅北口にオープン!',
'charter': '貸切不可', 'child': 'お子様連れOK', 'close': '土、日、祝 日',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 割愛 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
凄い情報が出てきた!!
レスポンスフィールドを参考にして必要な情報を絞ってみる
ramen.py(一部)
l = requests.get(url)
lunch = json.loads(l.text)
print(lunch['results']['shop'][0]['name']) #shopフィールドの 0 番に入っているお店の名前
print(lunch['results']['shop'][0]['open']) #shopフィールドの 0 番に入っているお店の営業日時
print(lunch['results']['shop'][0]['address']) #shopフィールドの 0 番に入っているお店の場所
実行結果
まぜそば専門店 麺や太郎
月~金、祝前日: 11:30~16:0017:00~21:30
北海道札幌市北区北7条西2丁目20 東京建物札幌ビルB1F
やった上手くいった!!
最後はランダムに一軒だけ表示させる。
ramen.py(一部)
import json
import requests
import random
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 省略 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cou=len(lunch['results']['shop']) #軒数をlenで割り出す。
num=random.randrange(0,cou-1) #random関数で0から軒数-1の値をnumにいれる。
print(lunch['results']['shop'][num]['name']) #shopフィールドの num 番に入っているお店の名前
print(lunch['results']['shop'][num]['open']) #shopフィールドの num 番に入っているお店の営業日時
print(lunch['results']['shop'][num]['address']) #shopフィールドの num 番に入っているお店の場所
実行結果
ラーメン ねるら
月、水、土: 11:30~22:00 (料理L.O. 21:30)火、木、金: 11:30~16:30 (料理L.O. 16:00)祝日、祝前日: 11:30~18:00 (料理L.O. 17:30)
北海道札幌市中央区南1条西9-1-3
市電中央区役所前駅から徒歩3分。駅を降りて、南1条通を東に進む。2つ目の信号の先の曲がり角を左に曲がった右手です。
よし、さっきの実行結果と今回の実行結果に出てきたお店が違うぞ~!!
これでラーメン屋スクリプト完成だ~~!!