
在學會了如何使用 n8n 爬取 PTT 最新文章之後,你可能會有一個新的想法:難道我每天都要手動點擊「Execute Workflow」來執行一次嗎?有沒有辦法讓 n8n 像個忠實的情報員,每天在固定的時間,自動幫我抓取最新的文章,並彙整成報告?
答案是肯定的!這就要靠 n8n 的「時間驅動觸發器」,而其中最靈活、最受開發者青睞的,就是 Cron 節點。
Cron 是一個源自 Linux 系統的古老而強大的任務排程語法,它能讓你用一行簡單的表達式,定義出任何你能想像到的複雜時間規則。n8n 將這個強大的功能,完美地整合成了視覺化的 Cron
節點。
這篇文章將是你的 n8n 自動化排程爬蟲終極實戰指南。我們將深入解析 Cron 語法的奧秘,並將它與我們先前學會的 PTT 爬蟲技巧相結合,手把手帶你打造一個能夠在每天指定時間,自動抓取 PTT 電影版最新情報,並發送到你指定位置的完整自動化工作流。
為什麼你的爬蟲需要「排程」?從一次性手動到 24H 自動化監控
手動執行的爬蟲,只是一個「工具」;而加入了排程的爬蟲,才是一個真正的「系統」。為你的爬蟲加上排程,能帶來三大核心價值:
- 持續的數據收集: 你可以建立一個長期的數據資料庫。例如,每天抓取特定股票的討論文章,持續一年後,你就能分析輿情與股價之間的關係。
- 即時的事件監控: 對於有時效性的資訊(例如:限量商品情報、特價機票資訊),你可以設定高頻率的排程(例如每 15 分鐘一次),在第一時間捕捉到關鍵動態。
- 解放你的時間與注意力: 設定好排程後,n8n 就會 24 小時不間斷地為你工作。你再也不需要記得每天要去檢查網站,所有資訊都會在指定的時間,自動送到你的面前。
Cron vs. Schedule 節點:我該選擇哪一個觸發器?
n8n 提供了兩種時間驅動的觸發器:Schedule
和 Cron
。我該如何選擇?
Schedule
節點: 它的介面非常直觀,適合處理簡單、固定的排程。例如「每天早上 9 點」、「每週五下午 5 點」、「每 30 分鐘一次」。對於 90% 的日常需求來說,它都非常好用。Cron
節點: 它的設定需要你手動填寫 Cron 表達式,看起來比較嚇人,但它提供了無與倫比的靈活性,適合處理複雜、不規則的排程。例如:- 「每週一到週五的上班時間(9:00 – 18:00),每小時執行一次。」
- 「每個月 1 號和 15 號的凌晨執行。」
- 「每個季度第一個月的第一天的午夜執行。」 這些複雜的規則,只有
Cron
節點才能輕鬆實現。
選擇建議: 如果你的需求 Schedule
節點能滿足,就用 Schedule
。如果不行,就毫不猶豫地選擇 Cron
。
終極排程語法:一篇搞懂 Cron 表達式 (* * * * *
)
Cron 表達式是一串由 5 個(或有時 6 個)欄位組成的字串,中間用空格隔開。只要你看懂了這 5 個欄位的意義,就能掌握所有排程的秘密。
五個欄位的順序與意義:
位置 | 欄位 | 允許值 |
1 | 分鐘 (Minute) | 0 – 59 |
2 | 小時 (Hour) | 0 – 23 |
3 | 日 (Day of Month) | 1 – 31 |
4 | 月 (Month) | 1 – 12 |
5 | 星期幾 (Day of Week) | 0 – 6 (0 和 7 都代表週日) |
特殊符號的意義:
*
(星號): 代表「每一個」。例如,在「小時」欄位寫*
,代表每一個小時。,
(逗號): 代表「和」,用來列舉多個不連續的值。例如,在「小時」欄位寫9,12,18
,代表在 9 點、12 點和 18 點執行。-
(減號): 代表「範圍」。例如,在「星期幾」欄位寫1-5
,代表週一到週五。/
(斜線): 代表「間隔」。例如,在「分鐘」欄位寫*/15
,代表每 15 分鐘。
常用 Cron 範例懶人包
任務描述 | Cron 表達式 |
每分鐘執行一次 | * * * * * |
每天凌晨 3:15 執行 | 15 3 * * * |
每週日晚上 10 點執行 | 0 22 * * 0 |
每個月 1 號早上 8 點執行 | 0 8 1 * * |
每週一至週五,早上 9 點到下午 5 點,每小時執行一次 | 0 9-17 * * 1-5 |
每 10 分鐘執行一次 | */10 * * * * |
如果你還是對產生 Cron 表達式沒有信心,可以使用 Crontab.guru 這個超棒的線上工具,它能即時驗證並用白話文解釋你的 Cron 語法。

實戰演練:建立一個「每日 PTT 電影版情報」自動抓取工作流
現在,讓我們將 Cron
節點與我們先前學會的 PTT 爬蟲流程結合起來。
- 目標: 每天晚上 10 點,自動抓取 PTT 電影版第一頁的所有文章標題與連結,並將結果存入 Google Sheets。
- 流程設計:
Cron
->HTTP Request (Cookie)
->HTTP Request (Scrape)
->HTML Extract
->Set
->Google Sheets
Cron
節點 (觸發器):- 新增
Cron
節點。 - Mode:
Every Day
(或者你可以選擇Cron
並手動輸入)。 - Hour:
22
(代表晚上 10 點)。 - Minute:
0
。 - 重要: 請確保你的 n8n 實例已經設定了正確的時區 (
GENERIC_TIMEZONE=Asia/Taipei
),否則這裡的 22 點會被解讀為 UTC 時間!
- 新增
- HTTP Request (Cookie & Scrape) 節點:
- 這部分的設定,與我們在「n8n 爬蟲實戰教學」中學到的完全一樣。
- 第一個
HTTP Request
節點透過 POST 請求,取得over18
的 Cookie。 - 第二個
HTTP Request
節點帶著這個 Cookie,去 GET 文章列表頁的 HTML。
HTML Extract
節點:- 同樣,設定與爬蟲教學中完全相同。
- 使用 CSS Selector (
.title a
等) 來提取標題、連結、作者和日期。
Set
節點:- 整理資料,例如將相對路徑的連結,補上
https://www.ptt.cc
變成完整的 URL。
- 整理資料,例如將相對路徑的連結,補上
Google Sheets
節點:- 設定好你的 Google Sheets 憑證與檔案。
- 使用
Append or Update
操作,將爬取到的結構化資料,一筆一筆地新增到你的試算表中。
啟用這個工作流後,你就擁有了一個全自動、每天準時為你工作的 PTT 情報員!
排程爬蟲的最佳實踐與注意事項
- 尊重對方伺服器 (Be Nice): 自動化爬蟲會對目標網站的伺服器造成負擔。請將你的排程頻率設定在一個合理的範圍內。對於 PTT 這種更新頻繁的論壇,幾小時抓一次通常已足夠;對於新聞網站,一天抓一次可能就夠了。切勿設定每秒或每分鐘執行的超高頻率爬蟲。
- 處理重複資料: 如果你的爬蟲會持續將資料寫入同一個資料庫或試算表,你需要一個機制來避免重複。在寫入前,你可以先用資料庫節點的
Find
或 Google Sheets 的Search
操作,根據「文章連結」這個唯一值,來檢查該筆資料是否已經存在。 - 加上錯誤處理: 排程任務都在背景執行,如果失敗了你可能不會馬上知道。強烈建議在
HTTP Request
等可能失敗的節點上,啟用錯誤處理機制,在出錯時自動發送一則通知給你,讓你能及時修復問題。

結語
Cron
節點是 n8n 中將一次性的手動任務,轉化為持續性自動化系統的關鍵。它為你的工作流賦予了時間的維度,讓 n8n 能夠在最精準的時刻,主動地為你執行任務。
今天,你不僅徹底學會了 Cron 這個強大排程語法的奧秘,更將它應用在了一個極具實用價值的「自動化排程爬蟲」專案上。這套「排程 + 爬蟲 + 數據儲存」的組合拳,是你建立任何自動化監控與數據收集系統的基礎。現在,就去思考一下,還有哪些你希望每天、每週、每月定時去關注的網路資訊,並為它們打造一個專屬的 Cron 自動化工作流吧!
更多精選文章請參考
n8n 與 Zapier 比較:該選哪個?2025年最完整功能、費用、優缺點分析
開源自動化工具推薦:從工作流程到測試,找到最適合你的免費方案
n8n 發送 Email 超詳細教學:從 SMTP 設定到 Gmail 節點串接,一篇搞定!
n8n Notion 串接終極指南:2025 年打造自動化工作流程,效率翻倍!