# 利嘉閣地產爬蟲｜香港放售出租樓盤、實用呎價一鍵匯出（免 API） (`claude_code_reviewer/ricacorp-scraper`) Actor

免登入抓香港利嘉閣地產公開樓盤：放售 2 萬筆、出租 5.9 千筆，含售價、月租、實用面積、實用呎價、房數、樓層、屋苑期數大廈、入伙日期、小學校網與經緯度，輸出 JSON／CSV／Excel。香港房產市調、估價分析與三大代理庫存比較必備。

- **URL**: https://apify.com/claude\_code\_reviewer/ricacorp-scraper.md
- **Developed by:** [Chad](https://apify.com/claude_code_reviewer) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 樓盤搜尋

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 香港利嘉閣地產爬蟲（Ricacorp Scraper）

抓香港**利嘉閣地產**（Ricacorp Properties）的公開樓盤資料：**放售 20,211 筆**、**出租 5,924 筆**。走公開 JSON API，不用登入、不用申請 API key、不開瀏覽器。

利嘉閣是香港三大地產代理之一（與中原、美聯並列）。Apify Store 上目前沒有任何其他人做這個站。

### 輸出欄位

| 欄位 | 型別 | 說明 |
|---|---|---|
| `post_no` | string | 利嘉閣盤源編號，例如 `CU88487564` |
| `deal_type` | string | `buy`（放售）或 `rent`（出租）|
| `title` | string|null | 樓盤全名（依所選語言）|
| `title_en` / `title_zh` | string|null | 英文／繁中名稱（兩者一併輸出，方便對照）|
| `address` | string|null | 街道地址 |
| `region` | string|null | 分區，例如 何文田/京士柏/九龍塘/又一村 |
| `region_en` / `region_zh` | string|null | 分區的英文／繁中 |
| `district` | string|null | 地區，例如 天水圍 |
| `estate` | string|null | **屋苑**，例如 又一村花園 |
| `phase` | string|null | 期數，例如 又一村花園 2期（沒分期則為 null）|
| `building` | string|null | 大廈／座數，例如 B4座(23號) |
| `usage` | string|null | 用途，例如 私人住宅 |
| `price_hkd` | number|null | 售價或月租（港元）|
| `market_price_hkd` | number|null | 市場叫價 |
| `saleable_area_sqft` / `saleable_area_sqm` | number|null | 實用面積（呎／平方米）|
| `unit_price_per_sqft` / `unit_price_per_sqm` | number|null | 實用呎價／每平方米價 |
| `monthly_mortgage_hkd` | number|null | 利嘉閣試算的每月供款 |
| `room` | number|null | 房數 |
| `floor_zone` | string|null | 樓層區間，例如 中層 |
| `flat` | string|null | 單位，例如 A7室 |
| `total_floors` / `units_per_floor` | number|null | 總樓層／每層伙數 |
| `total_units` / `estate_total_units` | number|null | 該座總伙數／全屋苑總伙數 |
| `occupation_date` | string|null | 入伙日期（ISO 8601）|
| `school_net` | string|null | 小學校網，例如 校網72 |
| `tags` | string\[]|null | 盤源標籤，例如 上車盤 |
| `view_count` | number|null | 瀏覽次數 |
| `agent_name` / `agent_name_zh` | string|null | 代理姓名 |
| `latitude` / `longitude` | number|null | 經緯度 |
| `location_id` | string|null | 利嘉閣位置 ID |
| `thumbnail_url` / `photo_urls` | string|string\[]|null | 縮圖／全部相片 |
| `listing_url` | string|null | 盤源頁網址 |
| `posted_at` / `updated_at` | string|null | 上架／更新時間（ISO 8601）|
| `scraped_at` | string | 抓取時間（ISO 8601）|

> 欄位名一律英文 snake\_case；**缺值一律 `null`，不會省略欄位**。

### 輸入

| 欄位 | 型別 | 預設 | 說明 |
|---|---|---|---|
| `mode` | enum | `search` | 目前只有樓盤列表 |
| `dealType` | enum | `buy` | `buy` 放售、`rent` 出租 |
| `regions` | string\[] | 全部 | 港島／九龍／新界東／新界西，留空＝四區全抓 |
| `bulkRegions` | string | — | 一行一個，與上面自動合併 |
| `rooms` | integer | — | 只留剛好 N 房 |
| `language` | enum | `zh-hk` | `zh-hk` 或 `en-hk` |
| `maxItems` | integer | 50 | 本次最多幾筆，上限 500 |
| `proxyConfiguration` | object | datacenter | 保持預設即可 |

### 輸入範例

**1. 九龍放售盤 100 筆**

```json
{ "mode": "search", "dealType": "buy", "regions": ["九龍"], "maxItems": 100 }
```

**2. 港島出租盤**

```json
{ "mode": "search", "dealType": "rent", "regions": ["港島"], "maxItems": 50 }
```

**3. 全新界三房放售盤，英文輸出**

```json
{ "mode": "search", "dealType": "buy", "regions": ["新界"], "rooms": 3, "language": "en-hk", "maxItems": 200 }
```

**4. 全港放售盤（四區合抓）**

```json
{ "mode": "search", "dealType": "buy", "maxItems": 500 }
```

**5. 大量貼上地區**

```json
{ "mode": "search", "dealType": "buy", "bulkRegions": "港島\n九龍", "maxItems": 100 }
```

### 注意事項

- **利嘉閣把香港分成四區**（港島、九龍、**新界東**、新界西），不是常見的三區。填「新界」會自動展開成新界東＋新界西。
- **可用的篩選只有地區與房數。** 利嘉閣的公開 API 不接受價格區間、面積區間或關鍵字篩選（送了會被靜默忽略）。本 Actor 因此不送這些參數，以免讓你以為有篩到；要按價格或屋苑過濾，請拿到資料後自行篩選。
- `maxItems` 是**所有地區合計**的上限，不是每區。
- 部分欄位在原始資料裡用 `0` 表示「未提供」（例如未標價的盤、未提供樓層數）。本 Actor 一律正規化成 `null`，避免出現「售價 0 元」這種誤導值。
- 抓取期間若有新盤上架，分頁會位移而出現重複；本 Actor 全 run 去重，同一筆只輸出並計費一次。
- 站方偶爾會回傳被截斷的 JSON；本 Actor 會自動重試該頁，重試耗盡才會記為缺漏並在 log 明講。
- 只抓公開資料，不登入、不繞過任何驗證。

### 計費

單一事件 `search-listing`，**每輸出一筆 $0.002**。只有成功寫進 dataset 的資料才計費；重複與被過濾掉的不收費。

### FAQ

**Q：可以只抓某個屋苑嗎？**
A：API 沒有屋苑或關鍵字篩選參數。做法是抓該區後依 `estate` 欄位自行過濾 —— 本 Actor 已經把屋苑從層級路徑正確拆出來（不是大廈名）。

**Q：`estate`、`phase`、`building` 差在哪？**
A：以「又一村花園 2期 B4座(23號)」為例：`estate` = 又一村花園、`phase` = 又一村花園 2期、`building` = B4座(23號)。有些屋苑沒分期，`phase` 就是 `null`。

**Q：租盤的 `price_hkd` 是月租嗎？**
A：是。`dealType: rent` 時 `price_hkd` 就是月租金，`unit_price_per_sqft` 是每呎月租。

**Q：可以跟中原、美聯的資料合併比較嗎？**
A：可以，這正是主要用途之一。三家都輸出 snake\_case、屋苑名與實用面積／呎價，適合做代理間的庫存與定價比較。注意各站屋苑命名略有差異，建議用地區＋屋苑名做模糊比對。

**Q：為什麼抓到的筆數比 `maxItems` 少？**
A：代表該條件下的資料已抓完。可放寬條件（例如不指定 `rooms`）或改抓其他區。

**Q：需要住宅代理（residential proxy）嗎？**
A：不需要。利嘉閣對 datacenter 出口友善，預設的 Apify datacenter proxy 就足夠，成本極低。

### 免責聲明

本 Actor 僅用於個人研究、學術分析、市場調查、房產趨勢研究等合法用途。使用時請遵守利嘉閣地產（ricacorp.com）服務條款及香港相關法規。請勿大量爬取、勿商業轉售原始資料。作者不對任何因使用本工具造成的損害承擔責任。

***

香港樓盤爬蟲 利嘉閣爬蟲 Ricacorp scraper 香港房產資料 HK property data 放售樓盤 出租樓盤 實用呎價 屋苑資料 香港地產代理 property listings Hong Kong real estate 樓盤匯出 物業數據 三大代理

***

### 📚 延伸教學與工具

這隻 actor 背後的實戰教學與免費工具，都在 **[AI Social API](https://aisocialapi.com/zh-hant/?utm_source=apify\&utm_medium=readme\&utm_campaign=ricacorp-scraper)**：

- 📖 教學：[「有放盤」定「得出租」？地產代理話術一戳就穿——用四家代理的原始樓盤資料自己核實](https://aisocialapi.com/zh-hant/learn/hk-property-listing-verification/?utm_source=apify\&utm_medium=readme\&utm_campaign=ricacorp-scraper)
- 📊 原創資料：[站台涵蓋表：模式、欄位與定價](https://aisocialapi.com/zh-hant/coverage/?utm_source=apify\&utm_medium=readme\&utm_campaign=ricacorp-scraper) — 40 個站台各有哪些模式、實際回傳哪些欄位、每筆多少錢，全部從 actor 自己的 schema 生成
- 🛠 免費工具：[香港樓價查詢](https://aisocialapi.com/zh-hant/tools/hk-property/?utm_source=apify\&utm_medium=readme\&utm_campaign=ricacorp-scraper) · [Apify 成本試算](https://aisocialapi.com/zh-hant/tools/apify-cost/?utm_source=apify\&utm_medium=readme\&utm_campaign=ricacorp-scraper)
- 🤝 不想自己跑？[我幫你每天跑](https://aisocialapi.com/zh-hant/monitor/?utm_source=apify\&utm_medium=readme\&utm_campaign=ricacorp-scraper)——排程好每天送進你的 Google Sheet 或 Slack，每月 US$299 起。

由實際經營 40+ 隻上架 actor 的人維護。

# Actor input Schema

## `mode` (type: `string`):

目前只有樓盤列表一種模式。

## `dealType` (type: `string`):

抓放售盤還是出租盤。

## `regions` (type: `array`):

要抓哪幾區。留空＝四區全抓。可填：港島 / 九龍 / 新界東 / 新界西（填「新界」會自動展開成東西兩區；也接受 Hong Kong Island、Kowloon 等英文）。

## `bulkRegions` (type: `string`):

大量貼上用：一行一個地區，會和上面欄位自動合併。

## `rooms` (type: `integer`):

只留剛好 N 房的物業。留空＝不限。

## `language` (type: `string`):

樓盤名稱、地區名要用哪種語言回傳。欄位名稱一律英文 snake\_case。

## `maxItems` (type: `integer`):

本次最多輸出幾筆（所有地區合計）。預設 50、上限 500。

## `proxyConfiguration` (type: `object`):

預設走 Apify datacenter proxy。利嘉閣對 datacenter 友善（實測直連／datacenter／residential 都 200），所以不需要較貴的 residential。但**不要整個關掉** —— 不帶 proxy 時會與平台上其他 run 共用出口 IP，那個 IP 有被站方限流的風險。

## Actor input object example

```json
{
  "mode": "search",
  "dealType": "buy",
  "regions": [
    "九龍"
  ],
  "language": "zh-hk",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "dealType": "buy",
    "regions": [
        "九龍"
    ],
    "language": "zh-hk",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("claude_code_reviewer/ricacorp-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "dealType": "buy",
    "regions": ["九龍"],
    "language": "zh-hk",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("claude_code_reviewer/ricacorp-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "dealType": "buy",
  "regions": [
    "九龍"
  ],
  "language": "zh-hk",
  "maxItems": 50
}' |
apify call claude_code_reviewer/ricacorp-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,claude_code_reviewer/ricacorp-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ERRcqBHVoCgKSYKfy/builds/1nbukR4vQZiZTAooJ/openapi.json
