寿司 Advent Calendar 2013 - 22日目の記事です。
12/18 から 6日間連続で、弊社エンジニアが寿司テロをさせていただいております。寿司社の面目躍如というところでしょうか。
さて、昨日はsri_1128さんによる築地の寿司大いってきたよーという、都内の寿司勢にとってはうらやましくなる記事でした。
行きたいと思っていた 一新さんに行こうと粘ったのですが.....いっぱいでした。
[gnavi:410121:detail]
なので検索と同僚おすすめで 寿司好さんにしました。
[gnavi:361541:detail]
目次
お店選びはPowerShell でAPI叩いて検索
PowerShell は さくっとAPIを叩くにも便利です。検索はPowerShellで。当然最低PowerShell V3からですが、私はPowerShell V4を推奨しますしここで紹介します。
GitHub にコード置いておきますね。
https://github.com/guitarrapc/PowerShellUtil/tree/master/HotPepperAPI
ぐるなび
API叩こう! と思ったのですが、はてなブログのサイドバーにあります、次。
ホットペッパー
はてなブログせんせーになかった!やろう!
永遠のβ版 グルメサーチAPI (ver 1.1) ベータ版
まぁなんというか永遠が永遠になりましたね。
■2007.11.19 ホットペッパーWebサービスはリクルートWebサービスに統合されました。
ホットペッパーWebサービスはリクルートWebサービスに統合されました。そのためリクルートWebサービスの利用規約が適用されますので、こちら をご覧ください。
現在公開中の「ホットペッパーWebサービス(http://api.hotpepper.jp)」に関しましては、リクルートWebサービスへの統合後も当面の間稼動いたしますが、今後はサービスレベルの向上や機能追加等を行わない計画ですので、新しく開発をされる方は、 http://webservice.recruit.co.jp/hotpepper/で提供されるリクルートWebサービス版をお使いください。
ユーザー登録
とはいえ、後継サービス(後述)と同じAPIキーが利用できるのでとりあえず発行されましょう。
登録したメールアドレスに確認メールがくるので、アクセスするとAPIキーも届きます!やったね!
お店を旧APIでしらべちゃうのですし
えいやっと、PowerShell V4で調べちゃいます。
ShopNameは、UTF8(URLエンコード) とのことなので、[System.Uri]::EscapeDataString()
でさくっとUTF8エンコードします。
$key = "APIキーを入れてね" $storeName = "築地すし好 新橋三丁目店" $urlEncodeStoreName = [System.Uri]::EscapeDataString($storeName) $responce = Invoke-RestMethod -Method Get "http://api.hotpepper.jp/GourmetSearch/V110/?key=$key&ShopName=$urlEncodeStoreName" $result = $responce.Results.Shop $result if ($result.count -ne 0) { # IE, Chrome, Opera $browsers = @("C:\Program Files\Internet Explorer\iexplore.exe", "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", "C:\Program Files (x86)\Google\Opera\opera.exe") $browser = $browsers.where({Test-Path $_},"last",1) & $browser $result.ShopUrl }
ほーら簡単!オブジェクトとして取得できました!
ShopIdFront : J000010185 ShopName : 築地すし好 新橋三丁目店 ShopNameKana : つきじすしこう しんばしさんちょうめてん ShopAddress : 東京都港区新橋3‐15‐4 StationName : 新橋 KtaiCoupon : 1 LargeServiceAreaCD : SS10 LargeServiceAreaName : 関東 ServiceAreaCD : SA11 ServiceAreaName : 東京 LargeAreaCD : Z011 LargeAreaName : 東京 MiddleAreaCD : Y005 MiddleAreaName : 銀座・有楽町・新橋・築地・月島 SmallAreaCD : X020 SmallAreaName : 新橋 Latitude : 35.6653423303 Longitude : 139.7559146915 GenreCD : G004 GenreName : 和食 FoodCD : R011 FoodName : 寿司 BudgetCD : B002 BudgetDesc : 2001~3000円 BudgetAverage : 3000円 GenreCatch : 寿司店 ShopCatch : にぎり こだわり1品料理 Capacity : 25 Access : 新橋駅烏森口徒歩5分 KtaiAccess : 新橋駅烏森口徒歩5分 ShopUrl : http://www.hotpepper.jp/strJ000010185/?vos=nhppalsa000016 KtaiShopUrl : http://hpr.jp/strJ000010185/?uid=NULLGWDOCOMO&vos=hpp336 KtaiQRUrl : http://webservice.recruit.co.jp/common/qr?url=http%3A%2F%2Fhpr.jp%2FstrJ000010185%2F%3Fuid%3DNULLGWDOCOMO%26vos%3Dhpp337 PictureUrl : PictureUrl Open : 月~金/17:00~翌3:30土/17:00~24:00 Close : 日・祝 PartyCapacity : 6 Wedding : Course : あり FreeDrink : なし FreeFood : なし PrivateRoom : なし Horigotatsu : なし Tatami : なし Card : 利用可 NonSmoking : 一部禁煙 :ランチ全禁煙/夜テーブル可・カウンター不可 Charter : 貸切不可 Ktai : つながる Parking : なし BarrierFree : なし Sommelier : いない OpenAir : なし Show : なし Equipment : なし Karaoke : なし Band : 不可 Tv : なし English : あり Pet : 不可 Child : お子様連れOK
ブラウザで見たい
そういうかと思って、自動的に IE、Chrome、Opera のいずれかがインストールされているとお店のurlも開いちゃいます。(え....そこまでするの....)*1
ホットペッパー APIリファレンス
ということで、現在のAPIはこれです。
ユーザー登録
永遠のβ版と一緒です。すでに持っている人はいりません。
お店をAPIでしらべちゃうのですし
さくっとランキングとか見てみましょう。
料理マスタ
こっちのAPIは、グルメサーチから店名サーチまでわかれています。
料理名マスタで寿司を探しちゃいましょう 使うuri stringはこれです。
"http://webservice.recruit.co.jp/hotpepper/food/v1/?key=$key"
$key = "APIキーを入れてね" (Invoke-RestMethod -Method Get "http://webservice.recruit.co.jp/hotpepper/food/v1/?key=$key").results.food | where name -eq "寿司"
code name food_category ---- ---- ------------- R011 寿司 food_category
寿司code は、R011ですね。
地域マスタ
地域は、新橋です。東京とか面倒なので、直接指定します。
http://webservice.recruit.co.jp/hotpepper/small_area/v1/?key=$key&keyword=新橋
$key = "APIキーを入れてね" $areaName = "新橋" (Invoke-RestMethod -Method Get "http://webservice.recruit.co.jp/hotpepper/small_area/v1/?key=$key&keyword=$areaName").results.small_area | where name -eq $areaName
code name middle_area large_area service_area large_service_area ---- ---- ----------- ---------- ------------ ------------------ X020 新橋 middle_area large_area service_area large_service_area
ランキング
指定条件でランキング順に出ます。
$key = "APIキーを入れてね" $foodName = "寿司" $areaName = "新橋" $foodCode = (Invoke-RestMethod -Method Get "http://webservice.recruit.co.jp/hotpepper/food/v1/?key=$key").results.food | where name -eq $foodName | select -ExpandProperty code $areaCode = (Invoke-RestMethod -Method Get "http://webservice.recruit.co.jp/hotpepper/small_area/v1/?key=$key&keyword=$areaName").results.small_area | where name -eq $areaName | select -ExpandProperty code (Invoke-RestMethod -Method Get "http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key=$key&food=$foodCode&small_area=$areaCode").results.shop | Format-Table -Autosize
id name logo_image name_kana address station_name -- ---- ---------- --------- ------- ------------ J000789240 すしざんまい 新橋店 http://imgfp.hotp.jp/IMGH/07/91/P012880791/P012880791_69.jpg すしざんまい しんばしてん 東京都港区新橋1-12-10 康楽ビル1F 2F 新橋 J001029596 すしざんまい 新橋SL広場前店 http://imgfp.hotp.jp/IMGH/85/35/P017548535/P017548535_69.jpg すしざんまいしんばしえすえるひろばまえてん 東京都港区新橋2-9-4 新橋乾杯ビル1階 新橋 J000694425 鮨 でですけ http://imgfp.hotp.jp/SYS/cmn/images/common/diary/custom/m30_img_noimage.gif すし でですけ 東京都港区新橋1-17-8 TKK新橋ビル 新橋 J000010185 築地すし好 新橋三丁目店 http://imgfp.hotp.jp/IMGH/03/48/P000980348/P000980348_69.jpg つきじすしこう しんばしさんちょうめてん 東京都港区新橋3‐15‐4 新橋 J000010779 新橋 大和鮨 http://imgfp.hotp.jp/IMGH/06/47/P015830647/P015830647_69.jpg しんばし だいわずし 東京都港区新橋2-9-7 新橋 J000010600 蛇の目寿司 西新橋店 http://imgfp.hotp.jp/IMGH/12/33/P000981233/P000981233_69.jpg じゃのめずし にししんばしてん 東京都港区西新橋2-13-4 内幸町 J000844233 すし旬彩 鷹の羽 新橋店 http://imgfp.hotp.jp/SYS/cmn/images/common/diary/custom/m30_img_noimage.gif すししゅんさいたかのは しんばしてん 東京都港区新橋3‐6‐1 新橋 J000999828 新橋しのだ寿司 新橋本店 http://imgfp.hotp.jp/IMGH/51/52/P015305152/P015305152_69.jpg しんばししのだす しんばしほんてん 東京都港区新橋2-6-1 さくら新橋ビルB1 新橋 J000010199 新橋しのだ寿司 烏森店 http://imgfp.hotp.jp/IMGH/04/48/P015320448/P015320448_69.jpg しんばししのだずし からすもりてん 東京都港区新橋3-2-2 新橋 J000010184 築地すし好 新橋店 http://imgfp.hotp.jp/IMGH/03/48/P000980348/P000980348_69.jpg つきじすしこう しんばしてん 東京都港区新橋3‐18‐1新橋千陽ビル1F 新橋
位置指定していないので 「order=4」(おすすめ順)に表示するとはいえ、実は評価がのっていない謎仕様。ほげー。ここは同僚のおすすめであった、「すし好 新橋三丁目」店にします。
お店を調べる
店名APIです。さっきのクエリがほとんどそのまま使えちゃいます。が、結果がまとめられたりしてるので、ちょっと小細工します。
$key = "APIキーを入れてね" $storeName = "築地すし好 新橋三丁目店" $urlEncodeStoreName = [System.Uri]::EscapeDataString($storeName) $responce = Invoke-RestMethod -Method Get "http://webservice.recruit.co.jp/hotpepper/shop/v1/?key=$key&keyword=$urlEncodeStoreName" $result = $responce.results.shop | %{ [PSCustomObject]@{ id = $_.id name = $_.name name_kana = $_.name_kana address = $_.address genre = $_.genre.name urls_pc = $_.urls.pc urls_mobile = $_.urls.mobile urls_qr = $_.urls.qr desc = $_.desc }} $result if ($result.count -ne 0) { # IE, Chrome, Opera $browsers = @("C:\Program Files\Internet Explorer\iexplore.exe", "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", "C:\Program Files (x86)\Google\Opera\opera.exe") $browser = $browsers.where({Test-Path $_},"last",1) & $browser $result.urls_pc }
簡単ですね。
id : J000010185 name : 築地すし好 新橋三丁目店 name_kana : つきじすしこう しんばしさんちょうめてん address : 東京都港区新橋3‐15‐4 genre : 和食 urls_pc : http://www.hotpepper.jp/strJ000010185/?vos=nhppalsa000016 urls_mobile : http://hpr.jp/strJ000010185/?uid=NULLGWDOCOMO&vos=hpp336 urls_qr : http://webservice.recruit.co.jp/common/qr?url=http%3A%2F%2Fhpr.jp%2FstrJ000010185%2F%3Fuid%3DNULLGWDOCOMO%26vos%3Dhpp337 desc : 1
もちろんブラウザでも開きますよ。
本題
はい。お店に行ってきました。実は、道を一本はさんで 「寿司好 新橋」店があるんですねー。間違えてそこにいっちゃって同僚に会えず寒い中10分過ごしました。風邪ひきそうです。
外観
外観は、こじんまりとしてて好きです。
カウンター席
寿司!といえばカウンター席ですね。異論は認めます。が、よく考えてください。カウンター席ということは職人様のあのなめらかな手さばき、鋭い視線を味わえるのです。カウンターがいけるならカウンターに座る。おすすめです。
目の前にはネタが見えました。夜にしたのはアレです。
おすすめ握り
選んだのはにぎりセット - おまかせ 3150円。これにアラ汁を足します。
少し待つこと15分、来ましたにゃ!
運悪くウニが品切れでしたが、大将が気を利かせてくださり大トロに。
ずらりと並ぶ14貫。1つずつ出てくるのが一番好きですが、壮観ですね。
反対からも!手前右はカニです。殻付きの。
平目から始めます。
あら汁 も身が多くて、出汁も出てました!いいですね。
最後に、同僚が頼んでいた フグ唐揚げ です。じゅわーっとおいしそうでした...... お寿司屋さんって一品料理が凄まじく美味しいの謎です。サスガです。
出店から始まった寿司がいつの間にかハレの食事になっていますが、たまに食べるから美味しい.... というのはなく、毎日でも美味しいです。でも財布がいたいので、もうちょっと安くなるとうれしいです....ふにゃん。
明日は、NAL-6295 さんによる 映画と寿司です。お楽しみに!
*1:V4のWhere Method Syntax 使ってるのでV3とか知りません。Where + Select -Last 1 でできますが