身為一個獨立開發者,我最羨慕大公司的地方,不是他們的工程師人數——是他們有專人做 market intelligence。

大公司可以養一個人,每天看競品的定價頁、追蹤競爭對手的更新、整理市場趨勢。我只有一個人,連自己的產品都寫不完,哪有時間做這些?

但我後來發現一件事:大部分競品資訊不難取得,只是沒有人把它們串在一起。

需求場景

我目前在開發的產品面對好幾個競品。我需要知道:

1. 競品的定價有沒有調整?

2. 他們有沒有推出新功能?

3. 他們在 tech media 上被報導了什麼?

這些資訊分散在各自的網站、部落格、新聞來源。每天手動檢查大概要花 30 分鐘。一個月就是 15 小時的成本。

那如果讓機器來做呢?

三層爬蟲架構

我設計了一套三層的資訊收集系統,全部架在 Apify 上。

第一層:RSS Feed Scraper

最多競品有公開的 blog 或 changelog,而且幾乎都有 RSS Feed。用 rss-feed-scraper(由社群維護的 Actor)可以一次餵入多個 feed URL,輸出統一的 JSON。

輸入設定很簡單:

`

feeds: [

"https://competitor1.com/blog/feed.xml",

"https://competitor2.com/changelog.xml",

"https://competitor3.com/rss"

]

`

輸出是一份 list,每筆包含 title、link、pubDate、content。比 RSS reader 更好的是,我可以把這些資料餵進下一步處理。

這個 actor 支援 RSS 2.0、Atom、RDF,涵蓋了幾乎所有常見格式。每小時一次的排程成本極低——feed 本身是輕量級的 XML,不需要渲染 JS。

第二層:Cheerio Scraper

有些資訊不在 RSS 裡,例如定價頁、產品功能對照表、或是沒有 RSS 的網站。這些需要用 scraper 處理。

Apify 的 apify/cheerio-scraper 是這個場景的最佳選擇。

Cheerio Scraper 用 raw HTTP request 爬取網頁,不需要瀏覽器渲染——所以速度非常快,成本也很低。我只需要在 Page Function 裡寫一段簡單的選擇器:

`javascript

async function pageFunction(context) {

const { $, request } = context;

// 抓定價資訊

const price = $('.pricing-card .price').text().trim();

const planName = $('.pricing-card .plan-name').text().trim();

return {

url: request.url,

planName,

price,

currency: $('meta[property="og:price:currency"]').attr('content'),

timestamp: new Date().toISOString()

};

}

`

我設定了每天爬一次競品的 pricing page,然後把結果跟昨天的比對。如果 price 變了——就是競品調價了。

第三層:Web Scraper + 排程通知

有些網站的內容需要 JavaScript 渲染——例如 React 寫的 landing page、SPA 應用的 dashboard。這些時候 Cheerio 不夠用,需要 apify/web-scraper

Web Scraper 使用真實瀏覽器渲染頁面,支援 Puppeteer 和 Playwright。寫法跟 Cheerio Scraper 類似,但可以執行任意的 DOM 操作。

這層我拿來抓那些「動態載入」的競品資訊:例如競爭對手的客戶案例頁(通常是 infinite scroll)、或是有動態定價的 SaaS 首頁。

三層的結果統一寫到一個 MongoDB collection,結構很簡單:

`json

{

"source": "cheerio-scraper",

"competitor": "competitor-x",

"type": "pricing",

"data": { "plan": "pro", "price": "$29/mo" },

"crawled_at": "2026-07-14T00:00:00Z"

}

`

異常偵測

單純搜集資料不夠。如果每天要看一堆報表,那就違反了「省時間」的初衷。

所以我加了一層異常偵測:比較每次爬到的結果,當數值發生變化時,發一條 Telegram 通知。

變化偵測邏輯很單純:

- 如果是數字(價格、容量等),看 delta 超過門檻就通知

- 如果是文字(新功能描述),比對 hash 是否不同

- 如果是新文章(RSS),直接推送

每月花費?Apify 這三隻 Actor 加起來大概 $5–10/月——比一個人的十分之一工時還要便宜。

跟我產品的關係

你可能會問:你上一篇說在做 VerifyAI(一個逆向搜圖服務),怎麼現在又在做競品監控?

因為這兩件事是同一件事。

VerifyAI 的核心是「幫助人們查證資訊的真偽」。而競品監控,本質上也是資訊查證——只是查的不是照片,是市場的真實狀態。

我做 VerifyAI 時學到的教訓——照片可以逆向搜圖來驗證——同樣適用於市場資訊。不要相信你的直覺,不要相信別人的說法。去爬原始資料,讓數據說話。

Cheerio ScraperWeb ScraperRSS Feed Scraper — 這三隻 Actor 就是我的「市場查證工具」。

如果你想自己做類似的系統,這三行就是起點:

1. RSS Actor 抓部落格

2. Cheerio Actor 抓靜態定價頁

3. Web Scraper 抓動態內容

然後串一條通知管線。一個週末就能搞定。