28Hse 香港屋網爬蟲|樓盤放盤、業主自讓、樓盤詳情一鍵匯出(免 API) avatar

28Hse 香港屋網爬蟲|樓盤放盤、業主自讓、樓盤詳情一鍵匯出(免 API)

Pricing

from $2.00 / 1,000 搜尋樓盤

Go to Apify Store
28Hse 香港屋網爬蟲|樓盤放盤、業主自讓、樓盤詳情一鍵匯出(免 API)

28Hse 香港屋網爬蟲|樓盤放盤、業主自讓、樓盤詳情一鍵匯出(免 API)

免登入抓 28Hse 香港屋網:買賣與租務放盤列表、完整樓盤詳情,含售價、租金、實用面積、呎價、間隔、地區、屋苑與刊登日期,並標記業主自讓(自讓盤)/代理盤,輸出 JSON/CSV/Excel。獨有業主放盤叫價資料,香港房產估價與 proptech 市調必備。

Pricing

from $2.00 / 1,000 搜尋樓盤

Rating

0.0

(0)

Developer

Chad

Chad

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

2

Monthly active users

11 days ago

Last modified

Share

28Hse 香港屋網爬蟲|樓盤放盤、業主自讓一鍵匯出(免 API)

抓 28Hse.com(香港屋網):樓盤放盤列表、單一放盤全欄位詳情,走公開 HTML 端點(SSR + JSON-LD),不用登入、不用 token。輸出結構化資料,業主自讓(FSBO)判定是本 Actor 的核心賣點——代理行網站沒有的資料面,適合估價模型/proptech/代理研究部門補齊 asking-price 資料。

與同作者的 centaline-scraper(中原地產成交資料)互補:centaline 走成交,本 Actor 主打放盤詳情與業主盤過濾。

輸出欄位

放盤列表(listing 模式)

欄位名稱型別說明
property_idstring放盤 ID
titlestring | null標題
deal_typestring | nullbuy(買賣)或 rent(出租)
property_typestring | null物業類型,例如 apartment
pricenumber | null價格(港元)。原始文字「售 $830 萬元」已換算成 8300000
saleable_areanumber | null實用面積(呎)
gross_areanumber | null建築面積(呎)。列表卡片本身不顯示建築面積,此欄位在 listing 模式恆為 null,只有 detail 模式才有值
unit_pricenumber | null實用呎價(港元)
districtstring | null地區,例如「荃灣」
estatestring | null屋苑名稱
roomsnumber | null房數。開放式間隔(無獨立房間)誠實回 null,不猜測
bathroomsnumber | null浴室數
is_ownerboolean業主自讓(FSBO)判定。頁面標示「業主盤」/「業主自讓」= true;「代理盤」或無標示 = false
agent_namestring | null代理行名稱;業主自讓盤則為頁面顯示的業主聯絡名稱
posted_atstring | null刊登時間(ISO 8601)。原始為相對時間(「36 秒前」「N 天前」),已換算成絕對時間
listing_urlstring | null放盤完整連結
source_modestring固定 listing
scraped_atstring抓取時間(ISO 8601)

放盤詳情(detail 模式,上面全部欄位 + 以下)

欄位名稱型別說明
addressstring | null完整地址
floor_size_sqftnumber | null實用面積(呎),來源與 saleable_area 相同
num_roomsnumber | null放盤頁 JSON-LD 原始房間數欄位。注意:這是網站自己 JSON-LD 提供的原始值,實測與頁面顯示的「N 房」(即上面的 rooms 欄位)不一定一致(見下方注意事項),兩個欄位都保留、各自誠實回報來源
descriptionstring | null放盤/屋苑描述全文
agent_addressstring | null代理行(或業主聯絡)地址
agent_urlstring | null代理行(或業主)頁面連結
date_publishedstring | null刊登時間(ISO 8601,含時區)
date_modifiedstring | null最後更新時間(ISO 8601,含時區)
image_countnumber | null放盤圖片總數(含樓層/單位平面圖)

模式說明

模式輸入輸出計費狀態
📋 listingdealType + propertyType(或 listingUrls)放盤列表search-listing $0.002/筆v1.0
🏠 detailpropertyIds 或 propertyUrls單一放盤全欄位product-detail $0.008/筆v1.0

所有計費都在資料成功寫入 dataset 之後才會收,Run 結束時 log 會印出 total_items / charged / skipped 讓你對帳。

輸入欄位

欄位型別預設說明
modeenumlistinglisting / detail(必填)
dealTypeenumbuybuy(買賣)或 rent(出租)。listing 模式用;detail 模式用 propertyIds(而非 propertyUrls)時也要填
propertyTypeenumapartment物業類型:apartment 住宅、village 村屋、house 獨立屋、carpark 車位、shop 店舖、office 商廈、land 土地、oversea 海外樓盤(只限 buy)。村屋、獨立屋是網站住宅分類裡的篩選條件,本 Actor 自動套用
listingUrlsarray—listing 模式選填,直接指定列表網址(覆蓋 dealType/propertyType),可填多個,各自獨立翻頁計數
propertyIdsarray—detail 模式用,放盤 ID(純數字),須搭配 dealType/propertyType 組網址
propertyUrlsarray—detail 模式用,放盤完整網址,自帶買賣/類型資訊最保險
bulkInputtextarea—批量貼上,一行一個,依目前模式自動併入對應欄位
ownerOnlybooleanfalse只適用 listing 模式:只保留業主自讓盤,過濾代理盤。業主盤在單一分類中通常較稀少,連續 5 頁沒有符合的放盤會提早停止(見下方注意事項)
maxItemsinteger50listing 模式:每個列表來源最多抓幾筆;detail 模式:最多抓幾個放盤。上限 500
dateFromstring—listing 模式適用,依放盤刊登時間篩選。格式 3d、12h、2w(相對時間)、2026-10-01(YYYY-MM-DD,可加時間如 2026-10-01T08:30;沒標時區以香港時間 UTC+8 計,明確寫 Z 或 +08:00 則照寫的為準)或 MM/DD/YY(UTC)。有設定時會提早停止翻頁,排程監控更省成本。detail 模式不適用
proxyConfigurationproxyApify datacenter proxy預設開啟;不用 proxy 會與其他 run 共用出口 IP 而被限流。自備 proxy 或本機測試才關

輸入範例

1. 放盤列表:買盤住宅

{
"mode": "listing",
"dealType": "buy",
"propertyType": "apartment",
"maxItems": 50
}

2. 放盤詳情:單一放盤

{
"mode": "detail",
"propertyUrls": ["https://www.28hse.com/buy/apartment/property-3948689"]
}

3. 只要業主自讓盤(FSBO),限定出租

{
"mode": "listing",
"dealType": "rent",
"propertyType": "apartment",
"ownerOnly": true,
"maxItems": 100
}

4. 批量抓多個放盤 ID

{
"mode": "detail",
"dealType": "buy",
"propertyType": "apartment",
"bulkInput": "3948689\n3924956\n3990751"
}

5. 排程監控:只抓 3 天內新刊登的放盤

{
"mode": "listing",
"dealType": "buy",
"propertyType": "apartment",
"dateFrom": "3d",
"maxItems": 200
}

在 Claude/AI agent 裡直接用(MCP)

這個 Actor 已可透過 Apify 官方託管的 MCP server 當成工具使用,不用另外安裝任何東西;計費與一般執行完全相同(照筆數計費,MCP 不加價)。

Claude Code 一行加入($APIFY_TOKEN 到 Apify Console → Settings → API & Integrations 取得):

$claude mcp add --transport http apify "https://mcp.apify.com/?tools=claude_code_reviewer/28hse-scraper" --header "Authorization: Bearer $APIFY_TOKEN"

Claude Desktop、Cursor 等其他 MCP client:把 https://mcp.apify.com 加為自訂 connector,用 OAuth 登入即可。

28Hse 按成交類型、物業類型篩選(dealType/propertyType),並支援 ownerOnly(業主自讓);不支援以屋苑名搜尋。可以直接這樣問:

用 28Hse 爬蟲列出最新的業主自讓(ownerOnly)住宅售盤,整理價格區間

Agent 會先收到執行摘要與 dataset id,再用 get-dataset-items 讀取資料列。

不想自己設定?見下方「我幫你每天跑」。

注意事項

  • 只抓公開內容,不需要帳號或 token,走公開 HTML 端點(SSR + JSON-LD),不開瀏覽器,速度快、成本低
  • 價格解析:原始文字「售 $830 萬元」的「萬」已自動換算成數字(× 10,000 = 8,300,000);出租價格通常無「萬」單位,直接取數字
  • 業主自讓(is_owner)判定:只認頁面明確標示「業主盤」/「業主自讓」為 true;標題若只是提到「業主」兩個字(例如「相熟業主,價錢可議」)不會誤判——這種情況仍是代理行放的盤,is_owner 正確回 false
  • ownerOnly 的成本保護機制:業主自讓盤在單一分類(例如「買樓·住宅」)通常比代理盤稀少很多。為了不讓爬蟲在完全沒有業主盤的分類裡無止盡翻頁燒錢,本 Actor 遵循「連續 5 個請求拿不到符合資料即停止」的鐵律——啟用 ownerOnly 時,若連續 5 頁都沒有業主自讓盤,會直接停止,即使該分類理論上還有更多(純代理)放盤沒抓完。若業主盤剛好分佈在較後面的頁數,可能因此漏抓;建議搭配較窄的篩選條件(dealType/propertyType 分開跑)增加業主盤密度
  • rooms 與 num_rooms 為什麼是兩個欄位:rooms(listing 模式與 detail 模式共用的欄位)來自頁面顯示的「N 房」文字(可靠、與頁面畫面一致);num_rooms(只有 detail 模式才有)是網站自己 JSON-LD 結構化資料裡的原始房間數欄位。實測同一個放盤這兩者可能不一致(例如某放盤頁面顯示「3 房」,但其 JSON-LD 的 numberOfRooms 卻是 1)——這是 28Hse 網站自己資料源的落差,不是本 Actor 的解析錯誤。兩個欄位都誠實保留各自來源的值,不互相覆蓋
  • 開放式間隔(無獨立房間隔間)的放盤,rooms 會誠實回 null,不會猜測成 0 或 1
  • gross_area(建築面積)只有 detail 模式才有值——放盤列表卡片本身只顯示實用面積,不顯示建築面積
  • 連續 5 頁無新資料自動停止翻頁,不空轉燒費用;設了 dateFrom 的話,整頁放盤都比 dateFrom 舊就會直接停止翻頁(更省成本,僅 listing 模式適用)
  • 網址不存在或被擋時如實回報:任何頁面回傳 404/錯誤碼,執行紀錄都會留下 [incomplete-data] 行(含網址與狀態碼);若整次執行所有請求都失敗、一筆資料都沒抓到,這次執行會標示為「失敗」而不是「成功但 0 筆」。不會有任何逐筆計費;只有 Apify 每次執行固定收的啟動事件(apify-actor-start)仍適用
  • 村屋/獨立屋:28Hse 沒有獨立的 /buy/village、/buy/house 頁面(這兩個網址會回 404),實際是住宅分類下的篩選。本 Actor 自動轉成 /buy/apartment/housetype-village_house、/buy/apartment/housetype-house,輸出的 property_type 仍是 village/house(detail 模式用 propertyIds 時也一樣;放盤詳情網址本身一律是 /apartment/property-ID)
  • 28Hse 目前對本 Actor 使用的 datacenter proxy 無反爬蟲挑戰(無 CAPTCHA/JS challenge);若未來網站加強防護,備援方案是切換 residential proxy,不預先過度設計

常見問題(FAQ)

Q: 為什麼有些放盤的 district/estate/price 是 null?

A: 極少數放盤卡片版型不完整(例如車位、非住宅類放盤,或該放盤本身缺資料),本 Actor 誠實回 null,不會用猜測值頂替。

Q: ownerOnly 開啟後抓不到任何業主盤,正常嗎?

A: 正常。業主自讓盤本來就比代理盤稀少,若連續 5 頁都沒有符合的放盤會提早停止(見上方注意事項),這是刻意的成本保護機制,不是 bug。可以試試換一個 dealType/propertyType 組合,或直接用 listing_url 去 28Hse 網站上手動確認該分類目前有沒有業主盤在架。

Q: propertyIds 跟 propertyUrls 有什麼不同?

A: propertyUrls(完整網址)自帶買賣類型與物業類型資訊,最保險;propertyIds(純數字 ID)需要額外填 dealType/propertyType 才能組出正確網址,兩者混用也可以。

Q: 為什麼 listing 模式的 gross_area(建築面積)都是 null?

A: 28Hse 的放盤列表卡片本身只顯示實用面積,不顯示建築面積;建築面積只在放盤詳情頁才有,所以只有 detail 模式的輸出才會有值。若需要建築面積,用 detail 模式抓對應放盤即可。

免責聲明

本工具僅供學術研究及合法商業分析用途。使用者應遵守 28Hse 服務條款及相關法規。請勿以本工具進行任何侵害他人隱私、散布虛假資訊或其他違法行為。作者不對任何濫用行為承擔責任。


28Hse 爬蟲、香港樓盤、業主自讓、香港房價、放盤資料


📚 延伸教學與工具

這隻 actor 背後的實戰教學與免費工具,都在 AI Social API:

由實際經營 30 多隻上架 actor 的人維護。