BLOG

 

235日のセブIT留学  成長日記「PythonからぐるなびAPIの口コミデータを取得!」 ( 45/235 days )

22 8月 2018, Posted by keisuke in IT留学, プログラミング

こんばんわ!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データを取得した!

 

[今日の未消化]

・口コミを形態素分析にかけてみる

 

Post a comment