OpenRice 爬蟲|香港餐廳、評分、菜式、地區、食評數一鍵匯出(免 API) avatar

OpenRice 爬蟲|香港餐廳、評分、菜式、地區、食評數一鍵匯出(免 API)

Pricing

from $2.00 / 1,000 搜尋餐廳

Go to Apify Store
OpenRice 爬蟲|香港餐廳、評分、菜式、地區、食評數一鍵匯出(免 API)

OpenRice 爬蟲|香港餐廳、評分、菜式、地區、食評數一鍵匯出(免 API)

免登入抓 OpenRice 香港餐廳:名稱、地區、菜式、評分、食評數、地址、電話與圖片,輸出 JSON/CSV/Excel。餐飲選址、市場調查、競品分析必備。

Pricing

from $2.00 / 1,000 搜尋餐廳

Rating

0.0

(0)

Developer

Chad

Chad

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

4

Monthly active users

3 days ago

Last modified

Share

OpenRice 爬蟲|香港餐廳資料、食評一鍵下載

OpenRice 抓取香港餐廳搜尋列表資料(餐廳名稱、菜式、地區、評分、食評數量、地址、電話、圖片網址)及個別餐廳的完整食評(評分、心情、內容、推薦菜式、人均消費)。

  • 走公開 JSON API + HTML,不用登入、不用 token、不用瀏覽器
  • 唯一穩定競品:Apify Store 上唯一的競品已長期 UNDER_MAINTENANCE、30/38 runs timeout
  • 兩種模式search(批量關鍵字搜尋,地區 / 菜式 ID 過濾)、reviews(依餐廳 ID 抓所有食評)
  • 結構化輸出:snake_case 欄位,缺值補 null,一律附 ISO 8601 時間戳

輸出欄位

欄位類型說明版本
poi_idstringOpenRice 餐廳唯一 IDv1.0
namestring | null餐廳中文名稱v1.0
cuisinestring[] | null菜式陣列(如 ["日本菜", "壽司/刺身"]v1.0
districtstring | null地區中文名稱(如「銅鑼灣」)v1.0
price_rangestring | null價位:$ / $$ / $$$ / $$$$v1.0
ratingnumber | nullOpenRice 整體評分(如 3.87v1.0
review_countinteger | null食評數量v1.0
bookmark_countinteger | null收藏人數v1.0
addressstring | null餐廳地址(中文)v1.0
phonestring | null電話號碼(第一個)v1.0
opening_hoursstring | null營業時間 JSON 字串(v1.1 改為易讀格式)v1.0
image_urlsstring[]餐廳圖片 URL 陣列(無圖片為 []v1.0
restaurant_urlstringOpenRice 餐廳頁面完整 URLv1.0
source_modestring資料來源模式(目前為 "search"v1.0
source_querystring觸發此筆資料的搜尋關鍵字v1.0
scraped_atstring抓取時間戳(ISO 8601,UTC)v1.0

reviews 模式

欄位類型說明
review_idinteger | null食評唯一 ID
restaurant_idstring餐廳 POI ID
authorstring | null食評作者暱稱
ratingnumber | null該則食評評分(0–5,1 位小數)
sentimentstring | null心情:smile / ok / cry
score_tastenumber | null味道分數(1–5)
score_environmentnumber | null環境分數(1–5)
score_servicenumber | null服務分數(1–5)
score_hygienenumber | null衛生分數(1–5)
score_valuenumber | null抵食分數(1–5)
titlestring | null食評標題
contentstring | null食評內容(已去除 BBCode,換行保留)
content_rawstring | null食評原文(含 OpenRice BBCode)
languagestring | null語言代碼(如 hk
price_per_headnumber | null人均消費
price_typeinteger | null消費類型代碼
meal_datestring | null用餐日期
dining_methodinteger | null用餐方式代碼
like_countinteger | null讚好數
dislike_countinteger | null踩數
photo_countinteger | null附圖數量
comment_countinteger | null留言數
view_countinteger | null瀏覽數
recommended_dishesstring[]推薦菜式陣列(無則為 []
is_editor_choiceboolean | null是否為編輯精選
created_atstring | null食評發佈時間
review_urlstring食評短連結(無則回退到該餐廳食評頁)
source_modestring資料來源模式(固定為 "reviews"
source_querystring觸發此筆資料的餐廳 ID
scraped_atstring抓取時間戳(ISO 8601,UTC)

模式

mode輸入產出計費事件
search(v1.0,預設)keywords[] + 可選 district / cuisine 過濾搜尋列表結果search-listing(每筆 $0.002)
reviews(v1.1)restaurantIds[]restaurantUrls[]餐廳食評review-item(每則 $0.003)

輸入參數

參數類型必填預設說明
modestringsearchsearch(搜尋餐廳)或 reviews(抓食評)
keywordsstring[]search 模式 ✓搜尋關鍵字(餐廳名稱/菜式),最多 50 個
bulkInputstring一行一個關鍵字(search)或餐廳 ID/網址(reviews),自動合併
restaurantIdsstring[]reviews 模式 ✓(三選一)餐廳 ID,網址最後的 r 後數字(如 808150
restaurantUrlsstring[]reviews 模式 ✓(三選一)餐廳頁面網址,自動擷取結尾的 r 後數字作為 ID
districtstring地區 ID(如 1019 = 銅鑼灣,見下方說明;僅 search 模式)
cuisinestring菜式 ID(如 2009 = 日本菜,見下方說明;僅 search 模式)
maxItemsinteger50search:每關鍵字最多筆數;reviews:每間餐廳最多食評數(1–2000)
proxyConfigurationobjectApify datacenter proxy預設開啟;關掉會與其他 run 共用出口 IP,食評頁可能拿不到資料

常用地區 ID(district)

districtId地區
1999香港島(全區)
1019銅鑼灣
1001上環 / 中環
2999九龍(全區)
2010旺角
2001尖沙咀
3999新界(全區)

完整列表可呼叫 GET https://www.openrice.com/api/v2/metadata/region/all?uiLang=zh&uiCity=hongkong 取得。

常用菜式 ID(cuisine)

cuisineId菜式
1004港式
2009日本菜
4000西式
1007中式
2001韓國菜

輸入範例

1. 搜尋壽司(預設設定)

{
"keywords": ["壽司"],
"maxItems": 20
}

2. 中環燒烤篩選(上環/中環地區,districtId=1001)

{
"keywords": ["燒烤"],
"district": "1001",
"maxItems": 20
}

3. 多關鍵字批量搜尋

{
"keywords": ["日本料理", "韓國烤肉"],
"maxItems": 50
}

4. 旺角日本菜(地區 + 菜式雙重過濾)

{
"keywords": ["壽司"],
"district": "2010",
"cuisine": "2009",
"maxItems": 30
}

5. 批量輸入多關鍵字

{
"bulkInput": "壽司\n燒烤\n火鍋\n茶餐廳\n點心",
"maxItems": 30
}

6. 抓單一餐廳的食評(reviews 模式)

{
"mode": "reviews",
"restaurantIds": ["808150"],
"maxItems": 100
}

餐飲市場研究

reviews 模式抓的是逐則食評(評分、心情、味道/環境/服務/衛生/抵食子分數、推薦菜式、人均消費),適合外送平台、連鎖餐飲品牌做菜式趨勢分析、競品評分監測與消費行為研究。建議流程:先用 search 模式依關鍵字或地區找出目標餐廳、記下 poi_id,再把這些 ID 丟進 restaurantIdsreviews 模式取得完整食評資料。


注意事項

  • 穩定性賣點:唯一競品長期 UNDER_MAINTENANCE(30/38 runs timeout),本 Actor 走純 JSON/HTML、無瀏覽器、指數退避重試,跑得完才算贏
  • 計費時機Actor.charge() 只在資料成功 push 到 dataset 之後才呼叫,中途失敗不計費
  • 連續空頁偵測:不論 search 或 reviews 模式,連續 5 頁拿不到新資料自動停止,不空轉燒錢
  • reviews 模式去重:同一 review_id 只會計費一次,即使因重試等原因重複抓到同一頁
  • detail 模式:OpenRice 的 POI 詳情 API 端點目前未公開,probe 全部回 404;待找到或逆向工程後加入

常見問題 FAQ

Q: 為什麼有些欄位是 null
A: OpenRice 部分餐廳資料不完整(如沒有電話、未填地址),本 Actor 一律補 null 而不省略欄位,確保每筆資料結構一致。

Q: opening_hours 是什麼格式?
A: v1.0 輸出 JSON 字串,包含每天的 dayOfWeek(1=日、2=一...7=六)、period1Startperiod1Endis24hrisClose 等欄位。v1.1 將改為人類可讀的格式。

Q: 可以只搜尋特定地區嗎?
A: 可以,在 district 填入 districtId(如 1019 = 銅鑼灣)。完整 districtId 清單可從 metadata API 取得。

Q: 支援 proxy 嗎?
A: 支援 Apify Proxy 或自訂 proxy,預設不使用(直連已可正常爬取)。

Q: image_urls 是否包含所有圖片?
A: 包含餐廳主圖(doorPhoto)及搜尋列表中回傳的最新圖片(通常 3–5 張)。完整相簿需 detail 模式(v1.1)。

Q: 可以抓食評內容嗎?
A: 可以,設定 "mode": "reviews" 並提供 restaurantIdsrestaurantUrls,即可抓該餐廳的完整食評(評分、心情、內容、推薦菜式等)。

Q: 餐廳 ID 在哪裡找?
A: 打開任一 OpenRice 餐廳頁面,網址結尾會有 r{數字}(如 .../r-milu-thai-tsim-sha-tsui-thai-r808150808150);或先用 search 模式搜尋,輸出的 poi_id 欄位就是餐廳 ID。也可以直接把整條餐廳網址貼進 restaurantUrls,Actor 會自動擷取 ID。


部署

npm install
npm run build
apify push

本地測試:

apify run --input='{"keywords":["壽司"],"maxItems":5}'
apify run --input='{"mode":"reviews","restaurantIds":["808150"],"maxItems":45}'

免責聲明

本工具僅用於公開可存取資料的合法研究與分析用途。使用者應自行遵守 OpenRice 服務條款,請勿大量爬取、勿用於商業競爭目的、勿儲存個人資料。作者對使用者行為不負任何責任。


OpenRice 爬蟲、香港餐廳、餐廳資料、食評、餐廳評分、香港美食數據、食評、評論抓取