こんばんわ!Keisukeです!
今日は, PyhotnでぐるなびAPIから口コミを見てみたいと思います!
コードは,公式のホームページにあるものを改良して作りました!
僕の住んでいる地域でAPIを取得してみたら…ヒット数が0になってしまったので札幌の位置情報でAPIを取得してみます!
以下コード
***************************
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#*****************************************************************************************
# ぐるなびWebサービスの応援口コミAPIを実行しハンバーグの口コミを取得しパースするプログラム
# 注意:アクセスキーはユーザ登録後に発行されるキーを指定してください。
#*****************************************************************************************
import sys
import urllib.parse
import urllib.request
import json
####
# 変数の型が文字列かどうかチェック
####
def is_str( data = None ) :
if isinstance( data, str ) or isinstance( data, int ) :
return True
else :
return False
if __name__ == ‘__main__’:
####
# 初期値設定
####
# APIアクセスキー
keyid = “あなたのキーを入力”
# エンドポイントURL
url = “https://api.gnavi.co.jp/PhotoSearchAPI/20150630/”
# メニュー
menu_name = u”カレー”
#文字コード
encoding = ‘utf-8’
latitude = “43.067656”
# 経度
longitude = “141.350857”
# 範囲
# 1:300m、2:500m、3:1000m、4:2000m、5:3000m
range_m = “1”
####
# APIアクセス
####
# URLに続けて入れるパラメータを組立
query = [
( “format”, “json” ),
( “keyid”, keyid ),
( “latitude”, latitude ),
( “longitude”, longitude ),
( “range”, range_m ),
( “menu_name”, menu_name.encode(encoding) ),
]
# URL生成
url += “?{0}”.format( urllib.parse.urlencode( query ) )
# API実行
try :
result = urllib.request.urlopen( url ).read()
except ValueError :
print(u”APIアクセスに失敗しました。”)
####
# 取得した結果を解析
####
data = json.loads( result )
#print(data)
# エラーの場合
if “error” in data :
if “message” in data :
print(u”{0}”.format( data[“message”] ))
else :
print(u”データ取得に失敗しました。”)
# ヒット件数取得
total_hit_count = None
if “total_hit_count” in data[“response”] :
total_hit_count = data[“response”][“total_hit_count”]
#ページごとの件数を取得
hit_per_page = None
if “hit_per_page” in data[“response”] :
hit_per_page = data[“response”][“hit_per_page”]
# ヒット件数が0以下、または、ヒット件数がなかったら終了
if total_hit_count is None or total_hit_count <= 0 or hit_per_page is None or hit_per_page <= 0 :
print(u”指定した内容ではヒットしませんでした。”)
# ヒット件数表示
print(“{0}件ヒットしました。”.format( total_hit_count ))
print(“—-“)
# 出力件数
disp_count = 0
# 応援口コミデータ取得
for i in range( hit_per_page ) :
photo = data[“response”][“{0}”.format(i)][“photo”]
line = []
id = “”
name = “”
mname = “”
comment = “”
# 店舗番号
if “shop_id” in photo and is_str( photo[“shop_id”] ) :
id = photo[“shop_id”]
line.append( id )
# 店舗名
if “shop_name” in photo and is_str( photo[“shop_name”] ) :
name = photo[“shop_name”]
line.append( name )
# メニュー名
if “menu_name” in photo and is_str( photo[“menu_name”] ) :
mname = photo[“menu_name”]
line.append( mname )
# コメント
if “comment” in photo and is_str( photo[“comment”] ) :
comment = photo[“comment”]
line.append( comment )
# タブ区切りで出力
print(“\t”.join( line ))
disp_count += 1
# 出力件数を表示して終了
print(“—-“)
print(u”{0}件出力しました。”.format( disp_count ))
***************************
実行結果
4件ヒットしました。
—-
7104243 スープカレーとカレーの店 天馬 海の幸の海鮮スープカレー 見た目にも鮮やかで、えび・ムー ル貝・あさり・いかの入ったシーフードカレーですが、大きく切った野菜もごろごろ入っていて、食べ応えもあり 大満足です。
7104243 スープカレーとカレーの店 天馬 豚の角煮温野菜のスープカレー(ポークスープ) よく煮込まれた 柔らかい豚の角煮とスープカレーならではの大きな野菜がたっぷりで、スパイスの効いたサラサラスープが具材と 良く合います。
h957801 カリーハウス コロンボ ハンバーグカレー ジューシーなハンバーグが、この店特有の甘口カレ ーの風味と相まって、とびきりの美味さを醸し出している。
6295315 まんざら ざんぎカレー 久しぶりに美味しいカレー&ざんぎを頂きました。
まろやかでコクのあるカレーと、カラっと揚がった味付ざんぎは人におすすめできる美味しさです。
ランチメニューで限定10食なのでお早めに。
出力できましたね!
検索の範囲を300mにしてるので少な目です。
コロンボのカレーが美味しんですよね….ちょっと日本が恋しいですね!
[今日の達成]
・口コミのAPIデータを取得した!
[今日の未消化]
・口コミを形態素分析にかけてみる