Darrell TW

n8n 自動化工作流程教學
MarTech 解決方案分享

0%

n8n 爬蟲神器 Apify 教學:不會寫程式也能爬資料

n8n-apify-node-bg

Apify 節點讓你在 n8n 中直接調用現成的爬蟲,自動爬取 TikTok、Instagram、Youtube 等等資料,完全不用自己從頭開始寫程式。

預計閱讀時間: 8-10 分鐘

你將學到:

  • Apify 的 Actor(爬蟲程式)和 Dataset(資料集)核心概念
  • API Token(金鑰)申請與 n8n Credentials(憑證)設定
  • Run Actor 和 Scrape Single URL 實際操作
  • 案例:Instagram 競爭對手數據自動同步到 Google Sheets

如果趕時間,可以跳到


你有沒有遇過這種情況?

想要定期追蹤競爭對手的社群數據,但每次都要手動複製貼上
更麻煩的是研究了 API 文件後卻發現,根本做不到!
像是 Meta API 只能取得自己帳號的數據。

況且這些平台也都會有很嚴格的反爬蟲機制,
就算是學過基礎的爬蟲,也會發現很難取得自己想要的資料。

Apify 可以解決很多爬蟲的痛點

自己寫爬蟲 vs 用 Apify 的差別

Apify 是什麼?

他是個爬蟲的平台,你可以想像成 App Store 或 Google Play。
大家可以把自已做好的爬蟲(應用程式)上傳到 Apify。
在 Apify 中他不是叫做 App,它叫做 Actor(演員,但在這裡指的是「爬蟲程式」)

更有趣的是,同一種爬蟲會有多個相似的 Actor
每個 Actor 之間會因為熱門的程度或是功能的差異,而有不同的計算價格方式。

補充說明

Apify 可以爬哪些網站?

  • TikTok
  • Instagram
  • Facebook
  • Threads
  • X (Twitter)
  • Youtube
  • Amazon
  • Google Maps
Apify 首頁 - 各種現成的爬蟲 Actor

Actor = 爬蟲程式

Actor 可以想像成「外送平台上的餐廳」,當你想要取得一份餐點時:

  • 先選餐廳(資料的平台,像是 Instagram、Youtube 等等)
  • 選擇餐點(選擇 Actor,例如爬貼文還是爬帳號)
  • 付款下單(設定參數並執行)
  • 等餐點送到(等待爬取結果)
Apify Store 內有各種現成的爬蟲可以選擇

Dataset = 爬取的資料

每次 Actor 執行完,結果會存放在 Dataset(資料集)中。
像是一個 暫存的資料表,資料會保留 7 天讓你取用。

提示

7 天是免費方案的預設值。如果你需要更長的保留時間,可以在 Actor 設定中調整 datasetRetentionDays 參數,或升級付費方案。

Apify vs HTTP Request:什麼時候用哪個?

如果你不知道 HTTP Request 是什麼,可以先跳過這段,直接看設定教學

情境 推薦 原因
爬取靜態網頁 HTTP Request 簡單直接,不需額外費用
爬取需要 JavaScript 渲染的頁面 Apify 內建 headless browser(無頭瀏覽器)
爬取有反爬機制的網站 Apify 內建 proxy(代理伺服器)和反偵測
爬取社群平台 (Meta/X) Apify 專門的 Actor 已處理好複雜邏輯

API Token 申請與 n8n 設定

Step 1:取得 Apify API Token

API Token(API 金鑰)是讓 n8n 能夠連接到你的 Apify 帳號的通行證。

  1. Apify Console 註冊帳號(免費方案每月有 $5 USD 額度,不用綁信用卡)
  2. 進入 Settings > API & Integrations
  3. Personal API tokens 複製 token
Apify Console 的 API Token 設定頁面

Step 2:在 n8n 設定 Credentials

Credentials(憑證)是 n8n 用來儲存各種服務帳號資訊的地方。

  1. 在 n8n 左側選單進入 Credentials(憑證)
  2. 點選 Add Credential(新增憑證)並搜尋「Apify API」
  3. 貼上剛才複製的 API Token
  4. Save 後測試連線
n8n 新增 Credential 搜尋 Apify
n8n 中填入 Apify API Key

相關文件可以參考 Apify n8n 整合文件


n8n Apify 節點功能介紹

Apify 的 n8n 節點提供蠻多操作,
但我們挑選三個最常用的功能來介紹。

Run Actor and get dataset items

這是最常用的操作——啟動 Actor、等它跑完、直接拿結果,一步到位。

Run Actor and get dataset items 設定畫面
Run Actor and get dataset items 完整設定

使用場景:

  • 定時爬取社群數據
  • 收集競爭對手資訊
  • 取得特定關鍵字的 LinkedIn 職缺

參數說明:

  • Actor Source:有兩種!
  1. Apify Store Actors
    可以用名字直接搜尋所有的 Actor
  2. Recently Used Actors
    只會顯示最近使用過的,例如你在 Apify 網頁版先試跑過的 Actor
在 n8n 中選擇 Actor Source 類型
  • Actor
    如果用 ID 的話取得比較麻煩:
    點開 Actor 後,在 URL 中可以找到 ID,格式像 https://console.apify.com/actors/{{actor_id}}/
    以這個例子為例
    https://console.apify.com/actors/h7sDV53CddomktSi5/input
    當中的 h7sDV53CddomktSi5 就是 ID
    也可以直接用 list 來選或是搜尋喔
搜尋 YouTube Scraper Actor
  • Input JSON:Actor 需要的 JSON(一種資料格式)參數
    通常我的習慣都會是在 Apify 根據 Actor 的說明先測試
    舉例這是一個 YouTube Scraper,在 Apify 網頁版可以先試跑看看參數怎麼設定:
在 n8n 中填入相同的 Input JSON

測試成功後,把相同的 JSON 貼到 n8n 的 Input JSON 欄位:

Apify 網頁版 YouTube Scraper 的 Input 設定
n8n 中直接貼上 JSON 參數
提示

如果 Actor 執行失敗,n8n 會顯示錯誤訊息。常見原因:

  • Input 參數格式錯誤:檢查 JSON 是否有多餘的逗號或引號
  • 額度用完:到 Apify Console 查看剩餘額度
  • Actor 本身不穩定:換一個類似功能的 Actor 試試

建議在 Workflow 中加入 Error Workflow 來處理失敗情況。

Scrape Single URL

這個其實是用 Apify 內建的 Website Content Crawler 來爬取單一頁面,會把內容轉成 Markdown 或 HTML。

Scrape Single URL 設定畫面
Scrape Single URL 填入網址就能取得網頁 metadata

適合場景:

  • 新聞文章
  • 部落格文章
補充說明

跟 Actor 的差異在哪?
這個功能適合靜態網頁,他通常會需要自己處理 HTML 的 DOM 結構
例如我要的新聞標題在 div 的什麼 class 裡面
新聞內容在哪個 div 底下的 p 元素

如果要爬社群平台,還是建議用專門的 Actor。

Run Actor(進階用法)

跟上面不同的是,這個只負責「啟動」Actor,不會等它跑完。

什麼時候用?當 Actor 執行時間很長(例如爬幾千筆資料),可以搭配 Apify Trigger 來接收完成通知。

Run Actor vs Run Actor Get Dataset 的差異比喻
補充說明

舉個例子:
你去餐廳點餐時,如果是付完錢在旁邊等候餐點完成,這樣子就像是 Run Actor and get dataset items
但是如果他有給你一個感應器,會在餐點完成時發出通知,那就像是 Run Actor + Apify Trigger 的組合,
你手中拿的感應器就是一個 Webhook(網址回呼,當事情完成時自動通知你的機制)。

提示

當你需要爬取大量資料(例如 1000 筆以上),Actor 可能會執行超過 5 分鐘。這時候用 Run Actor and get dataset items 可能會 timeout(逾時)。

正確做法:

  1. Run Actor 啟動爬蟲
  2. 設定 Apify Trigger 節點監聽完成事件
  3. 完成後自動觸發後續處理

這樣可以避免 Workflow 卡住,也能處理更大量的資料。


n8n Apify 實戰案例:Instagram 競爭對手追蹤

這個案例展示如何每週自動爬取競爭對手的 Instagram 貼文數據,並同步到 Google Sheets 做分析。

流程: Schedule Trigger(排程觸發器,設定每週自動執行)→ Apify Run Actor → Set Node 整理資料 → Google Sheets

Instagram 競爭對手追蹤 workflow 完整流程

Step 1:選擇 Instagram Scraper

Apify Store 搜尋「Instagram」,官方的 apify/instagram-scraper 蠻穩定的:

可爬取類型 說明 限制
posts 貼文內容 每帳號最多抓 20 筆(免費方案)
comments 貼文留言 每篇最多 50 則
details 帳號詳細資訊 粉絲數、追蹤數、簡介
reels 短影片 -
提示

同一個平台(例如 Instagram)會有多個不同的 Actor,怎麼選?

  1. 看評分和使用人數:越多人用通常越穩定
  2. 看價格:有些 Actor 按筆數計費,有些按執行時間
  3. 看維護頻率:最近更新日期越近越好(社群平台常改版)
  4. 先用免費額度測試:跑幾次看回傳資料是否符合預期

官方 Actor(帳號名稱是 apify/)通常比較穩定,但價格可能較高。

Step 2:設定 Apify 節點

選擇 Run Actor and get dataset items,填入以下參數:

Actor: apify/instagram-scraper

追蹤特定帳號的設定,直接複製下面這段貼到 Input JSON 欄位:

1
2
3
4
5
6
7
8
{
"directUrls": [
"https://www.instagram.com/competitor1/"
],
"resultsType": "posts",
"resultsLimit": 10,
"onlyPostsNewerThan": "7 days"
}

competitor1 換成你想追蹤的帳號名稱就好。

Instagram Scraper 的 Input JSON 設定

Step 3:用 Set Node 整理資料

Instagram Scraper 回傳的資料欄位很多,用 Set Node 把需要的欄位整理出來。

直接照著下面的截圖設定就好,不需要懂程式:

Set Node 設定畫面 - 整理 Instagram 資料

設定好之後,每筆資料會變成這樣的格式:

  • 貼文 ID
  • 帳號名稱
  • 貼文內容(前 200 字)
  • 按讚數
  • 留言數
  • Hashtag
  • 貼文網址
  • 發布時間
補充說明

如果 Instagram 的按讚數顯示 -1,代表該用戶隱藏了按讚數,這是正常的。

Step 4:寫入 Google Sheets

最後用 Google Sheets 節點的 Append Row(新增一列)把資料寫進去。

Google Sheets Append or Update Row 設定
爬取的 Instagram 數據寫入 Google Sheets 結果

實測效果和費用:
apify/instagram-scraper 的價格是 $2.7 美元/1000 筆資料
所以每個月就算搜集到一千筆貼文,也都還沒超過免費額度

Apify Instagram Scraper 價格方案
提示

如果你需要大量爬取,可以這樣省錢:

  1. 減少不必要的欄位:在 Actor Input 中設定 fields 只取需要的資料
  2. 設定合理的 resultsLimit:不要貪心一次爬太多
  3. 避免重複爬取:用 n8n 的 If 節點 檢查是否已經爬過
  4. 選擇便宜的 Actor:同樣功能的 Actor 價格可能差 2-3 倍

什麼時候不該用 Apify?

Apify 看起來很好用沒錯,但還是想分享有些不適合的場景:

免費額度 $5 聽起來蠻多的,很多時候免費額度綽綽有餘。
但如果是商用想要爬大量的數據,就得思考付費的方案是否划算?

使用頻率 月費估算 免費額度可用
每天 50 筆 ~$4 ok
每週 50 筆 ~$0.54 ok
每天 200 筆 ~$16 需付費

有官方 API 就別硬爬

注意事項

爬取社群平台資料有法律風險。Instagram、TikTok 的服務條款都明確禁止未授權的資料抓取,商業用途前建議先確認合規性。

實際建議:

  • 個人研究、學習用途:風險較低
  • 商業用途:建議諮詢法律顧問
  • 爬取自己的帳號資料:用官方 API 更安全

我自己使用 Apify 都是想自動化參考別人的內容時才會使用。
如果是拿來爬取自己的數據,其實就不需要 Apify
原因是大部分的社群平台都會有 API 可以抓去自己的數據
這時就會盡量用官方 API 來抓取,穩定度來說會好很多!


常見問題

Apify 免費額度有多少?執行一次大概花多少?
Apify 提供每月 $5 USD 免費額度(不用綁信用卡)。小量測試或是爬資料都很夠用!Instagram 爬蟲大約 $2.7/1000 筆,所以免費額度可以爬約 1800 筆。
Run Actor 和 Run Actor and get dataset items 有什麼差別?
最大差別是是否等待結果

Run Actor and get dataset items:會等 Actor 跑完,直接拿到資料,初學者推薦用這個
Run Actor:只負責啟動,需搭配 Trigger 或另外撈取 Dataset

如果你的 Actor 執行時間很長(超過 5 分鐘),才需要考慮用 Run Actor + Trigger 的組合。
Scrape Single URL 可以爬任何網站嗎?
理論上可以,但實際效果因網站而異:

適合:靜態網頁、部落格、新聞網站
不適合:需要登入、有反爬機制、大量 JavaScript 渲染的網站

如果要爬社群平台,還是建議用專門的 Actor。

相關文章推薦

n8n Webhook 節點完整教學

學會 Webhook 節點,搭配 Apify Trigger 接收爬蟲完成通知

n8n Webhook 節點完整教學
n8n If 和 Switch 節點教學

爬取資料後,用條件判斷篩選有價值的內容

n8n If 和 Switch 節點教學
n8n Set 節點教學 - 資料整理的核心技巧

整理 Apify 回傳的原始資料,轉換成你需要的格式

n8n Set 節點教學 - 資料整理的核心技巧

總結

爬蟲一直是一個很大的學問,厲害的工程師們可以寫出各種花式的爬蟲程式。
但是 Apify 這個服務把爬蟲這件事簡化很多。

現在我們就挑選適合的 Actor 後測試幾輪,就能知道是不是真的能滿足我們的需求。
缺點有幾個:

  1. 部分 Actor 價格很貴,甚至是有訂閱的費用(每月 $20 美金等等)
  2. 有時候 Actor 參數設定沒問題,但跑出來的結果就是不符合我們的預期,這時只能換換看其他 Actor

整體來說還是相當推薦,畢竟在 AI 時代我們就是希望用最快最簡單的方式來取得資料

有任何 Apify 相關問題歡迎在下方留言