# momo 購物網爬蟲｜商品、價格、原價、即時庫存一鍵匯出（免 API） (`claude_code_reviewer/momo-scraper`) Actor

免登入抓 momo 購物網商品：關鍵字搜尋列表，含標題、價格、原價、即時庫存與圖片，輸出 JSON／CSV／Excel。支援批量關鍵字，電商比價、選品、庫存監控必備。

- **URL**: https://apify.com/claude\_code\_reviewer/momo-scraper.md
- **Developed by:** [Chad](https://apify.com/claude_code_reviewer) (community)
- **Categories:** E-commerce, Agents, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: 5.00 out of 5 stars

## 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/platform/actors/running/actors-in-store#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

## momo 購物網商品爬蟲｜搜尋、價格、精確庫存一鍵下載（免 API、免登入）

一個 Actor 幫你抓 momo 購物網的**關鍵字搜尋**結果：商品列表、目前售價、原價、折扣，以及 momo 站上少見會公開的**精確庫存數字**。不需要登入、不需要 API token，批量貼上上百個關鍵字也吃得下。全程走 momo 網頁內嵌的資料（非官方 API），不開瀏覽器，速度快、成本低。

給誰用的：做比價網站的、追蹤特定商品價格與庫存波動的、寫市場調查報告的、跑電商數據分析的、論文需要資料集的、自己寫 side project 的工程師。

***

### 能抓到什麼

每一筆商品都會拿到下面這些欄位（缺值一律回 `null`，不會少欄位）：

| 欄位             | 說明                                                                 | 範例                                                                | v1.0 是否有值               |
| ---------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------- |
| `product_id`     | momo 商品代碼（goodsCode）                                           | `10101929`                                                          | ✅                          |
| `title`          | 商品名稱                                                             | `【Logitech 羅技】M331 靜音無線滑鼠`                                | ✅                          |
| `brand`          | 品牌（從商品名稱【】中解析）                                         | `Logitech 羅技`                                                     | ✅                          |
| `price`          | 目前售價（NT$）                                                      | `590`                                                               | ✅                          |
| `original_price` | 原價（NT$）                                                          | `790`                                                               | ✅                          |
| `discount_pct`   | 折扣百分比                                                           | `25`                                                                | ✅                          |
| `category_path`  | 分類路徑                                                             | —                                                                   | ❌ 一律 `null`（規劃 v1.1） |
| `rating`         | 評分（0-5）                                                          | —                                                                   | ❌ 一律 `null`（規劃 v1.1） |
| `review_count`   | 評論數                                                               | —                                                                   | ❌ 一律 `null`（規劃 v1.1） |
| `sold_count`     | 累積銷量                                                             | —                                                                   | ❌ 一律 `null`（規劃 v1.1） |
| `stock`          | **即時精確庫存數量**（momo 差異化賣點，多數電商站只給「有貨/缺貨」） | `1040`                                                              | ✅                          |
| `promo`          | 促銷文案陣列                                                         | `[]`                                                                | ❌ 一律 `[]`（規劃 v1.1）   |
| `coupon`         | 適用折價券                                                           | —                                                                   | ❌ 一律 `null`（規劃 v1.1） |
| `image_urls`     | 商品圖網址陣列                                                       | `["https://img2.momoshop.com.tw/...jpg"]`                           | ✅                          |
| `product_url`    | 商品網址                                                             | `https://www.momoshop.com.tw/goods/GoodsDetail.jsp?i_code=10101929` | ✅                          |
| `source_mode`    | 這筆從哪個模式來的                                                   | `search`                                                            | ✅                          |
| `source_query`   | 抓取時用的關鍵字                                                     | `羅技滑鼠`                                                          | ✅                          |
| `scraped_at`     | 抓取當下時間（ISO 8601）                                             | `2026-07-03T05:23:28.617Z`                                          | ✅                          |

**重要：momo v1.0 只有搜尋模式（search-only）。** `category_path`、`rating`、`review_count`、`sold_count`、`coupon` 這幾個欄位目前一律回 `null`，`promo` 一律回 `[]` —— 這些是 momo 商品詳情頁 / 評論頁才有的資料，規劃在 v1.1 的商品詳情模式（detail）與評論模式（reviews）中補上。**`stock`（精確庫存數字）反而是 momo 版本現在就有、而且是三站中最準確的欄位**，因為 momo 商品列表資料本身就內嵌即時庫存數。

***

### 目前只有一種模式（v1.0）

| 模式          | 幹嘛用的                                     | 計費事件                 | 單價   |
| ------------- | -------------------------------------------- | ------------------------ | ------ |
| 🔎 **search** | 關鍵字搜尋，拿商品列表（含價格、折扣、庫存） | `search-listing`（每筆） | $0.002 |

不管跑幾筆，每次 Run 啟動都會額外收一次性的 `actor-start` 費用 **$0.005**。所有計費都在資料成功寫入 dataset **之後**才會收，Run 結束時 log 會印出 `total_items / charged / skipped` 讓你對帳。

**商品詳情（detail）與評論（reviews）模式規劃於後續 v1.1 版本推出**，目前版本只支援關鍵字搜尋。

***

### 輸入欄位

| 欄位                 | 型別     | 必填  |    預設     | 說明                                                                                                                           |
| -------------------- | -------- | :---: | :---------: | ------------------------------------------------------------------------------------------------------------------------------ |
| `mode`               | enum     | 選填  |  `search`   | v1.0 僅支援 `search`（關鍵字搜尋）。                                                                                           |
| `keywords`           | string\[] | 必填\* |      —      | 搜尋關鍵字，一個概念一個關鍵字最準。單次最多 **50** 個。                                                                       |
| `sort`               | enum     | 選填  | `relevance` | v1.0 僅提供「相關度」排序 —— 熱銷/價格排序實測未生效，暫不開放（避免輸出誤導的順序）。                                         |
| `priceMin`           | integer  | 選填  |      —      | 只留售價 ≥ 此金額的商品（NT$）。留空表示不限。                                                                                 |
| `priceMax`           | integer  | 選填  |      —      | 只留售價 ≤ 此金額的商品（NT$）。留空表示不限。                                                                                 |
| `bulkInput`          | string   | 選填  |      —      | **一行一個關鍵字**，按 Enter 換行，不要加引號或逗號。執行時自動併入 `keywords`。從 Google Sheet / Excel 複製一整欄貼進來最快。 |
| `maxItems`           | integer  | 選填  |    `50`     | 每個關鍵字最多抓幾筆（1-500）。越多費用越高。                                                                                  |
| `proxyConfiguration` | object   | 選填  |    關閉     | momo 對 datacenter 請求友善，預設不用 proxy 即可運作。只有大量抓取遇到被擋 (429) 時才建議開啟。                                |

\*`keywords` 與 `bulkInput` 至少填一個。

***

### 範例

**🔎 基本關鍵字搜尋**

```json
{
    "mode": "search",
    "keywords": ["羅技滑鼠"],
    "sort": "relevance",
    "maxItems": 15
}
```

**💰 價格區間篩選**

```json
{
    "mode": "search",
    "keywords": ["機械鍵盤"],
    "priceMin": 1000,
    "priceMax": 3000,
    "maxItems": 30
}
```

**📋 批量貼上多個關鍵字**

```json
{
    "mode": "search",
    "bulkInput": "羅技滑鼠\n機械鍵盤\n咖啡機",
    "maxItems": 20
}
```

***

### 幾個要注意的地方

- **只抓公開資料**。不需要登入、不需要 momo 帳號，也不會存取任何需要驗證才看得到的內容。
- **不用登入 / 不用 API token**。填好 input 就能跑，沒有任何金鑰要設定。
- **走 momo 網頁內嵌資料，非官方 API**。momo 搜尋頁把商品資料以 JSON 形式內嵌在 Next.js 頁面中，本 Actor 解析該內嵌資料，並非呼叫官方公開 API，如頁面結構調整可能需要更新爬蟲邏輯。
- **對電商站友善**。每個 domain 併發數 ≤5，遇到失敗會用指數退避重試最多 3 次，跨頁自動去重（同一商品不會重複出現、不會重複計費）。
- **`stock` 是 momo 版本的強項**。多數電商站只給「有貨/缺貨」，momo 商品列表資料直接內嵌即時精確庫存數量，適合做庫存監控、補貨提醒。
- **商品詳情（detail）與評論（reviews）規劃於 v1.1**。目前版本只有搜尋模式的彙總欄位，尚無法取得評分、評論內容、銷量等資料。

***

### 常見問題

**Q: 關鍵字要怎麼給？**
直接填 `keywords` 陣列，或用 `bulkInput` 一行一個貼上，兩者會自動合併。一個概念填一個關鍵字最準，例如「羅技滑鼠」比「滑鼠 無線 靜音」準確。

**Q: 為什麼沒有評分 / 評論數？**
momo 搜尋列表資料本身不包含評分與評論彙總，這部分規劃在 v1.1 的商品詳情 / 評論模式中補上。目前版本這兩欄一律回 `null`。

**Q: 費用怎麼算？**
每次 Run 啟動收一次 `actor-start`（$0.005）；每筆商品列表收 `search-listing`（$0.002）。都是資料成功寫入 dataset 後才收費，Run log 會印出實際收費筆數。

**Q: `stock` 準嗎？**
`stock` 直接取自 momo 頁面內嵌資料的 `goodsStock` 即時值，跟你當下打開 momo 網站看到的庫存數字一致；但商品熱銷時庫存變動快，仍以下單當下頁面顯示為準。

**Q: 為什麼只有相關度排序，不能選熱銷或價格排序？**
實測發現 momo 的熱銷/價格排序參數目前不影響回傳順序（等於沒排序），為了不讓你誤以為資料真的照該順序排列，v1.0 先只開放驗證有效的「相關度」排序，其餘排序方式待確認可用後於後續版本開放。

***

### 部署

```bash
apify login              # 首次:貼上 Apify token(不會寫進 repo)
apify push               # 建置並上傳到 Apify Store
```

上架後在 Apify Console 的 Monetization 設定 PPE 事件單價：
`actor-start` $0.005、`search-listing` $0.002。

***

### 免責聲明

本爬蟲只收集 momo 購物網**公開可見**的商品資料，資料僅供研究與個人用途使用，不用於任何未經授權的商業轉售。使用前請自行確認符合 momo 購物網服務條款與當地法規。對於資料的正確性、即時性或完整性，本 Actor 不做任何保證，商品價格與庫存請以 momo 官網當下顯示為準。

***

momo 爬蟲、momo購物網 API、momo 比價、價格追蹤、庫存監控、電商數據

# Actor input Schema

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

momo v1.0 支援搜尋模式。

## `keywords` (type: `array`):

搜尋的關鍵字。例如：羅技滑鼠、機械鍵盤、咖啡機。一個概念一個關鍵字最準。

## `sort` (type: `string`):

搜尋結果排序。v1.0 僅提供「相關度」— 其他排序方式(熱銷/價格)實測未生效，故先不開放，避免輸出誤導的排序結果，規劃於後續版本修復後再開放。

## `priceMin` (type: `integer`):

只留售價 ≥ 此金額的商品。留空表示不限。

## `priceMax` (type: `integer`):

只留售價 ≤ 此金額的商品。留空表示不限。

## `bulkInput` (type: `string`):

**一行一個關鍵字**，按 Enter 換行，不要加引號或逗號。執行時自動併入上面的關鍵字欄位。從 Google Sheet / Excel 複製一整欄貼進來最快。

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

每個關鍵字最多抓幾筆。越多費用越高。

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

momo 對 datacenter 請求友善，預設不用 proxy 即可運作。只有大量抓取遇到被擋 (429) 時才建議開啟。

## Actor input object example

```json
{
  "mode": "search",
  "keywords": [
    "羅技滑鼠"
  ],
  "sort": "relevance",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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",
    "keywords": [
        "羅技滑鼠"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("claude_code_reviewer/momo-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",
    "keywords": ["羅技滑鼠"],
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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",
  "keywords": [
    "羅技滑鼠"
  ]
}' |
apify call claude_code_reviewer/momo-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=claude_code_reviewer/momo-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GeksW2oRjENwd9gt4/builds/czoy22tVMrKf9p0MY/openapi.json
