n8n Cron 節點實戰指南:從零打造「自動化排程爬蟲」,每天準時抓取 PTT 最新情報

n8n cron 爬蟲

在學會了如何使用 n8n 爬取 PTT 最新文章之後,你可能會有一個新的想法:難道我每天都要手動點擊「Execute Workflow」來執行一次嗎?有沒有辦法讓 n8n 像個忠實的情報員,每天在固定的時間,自動幫我抓取最新的文章,並彙整成報告?

答案是肯定的!這就要靠 n8n 的「時間驅動觸發器」,而其中最靈活、最受開發者青睞的,就是 Cron 節點

Cron 是一個源自 Linux 系統的古老而強大的任務排程語法,它能讓你用一行簡單的表達式,定義出任何你能想像到的複雜時間規則。n8n 將這個強大的功能,完美地整合成了視覺化的 Cron 節點。

這篇文章將是你的 n8n 自動化排程爬蟲終極實戰指南。我們將深入解析 Cron 語法的奧秘,並將它與我們先前學會的 PTT 爬蟲技巧相結合,手把手帶你打造一個能夠在每天指定時間,自動抓取 PTT 電影版最新情報,並發送到你指定位置的完整自動化工作流。

為什麼你的爬蟲需要「排程」?從一次性手動到 24H 自動化監控

手動執行的爬蟲,只是一個「工具」;而加入了排程的爬蟲,才是一個真正的「系統」。為你的爬蟲加上排程,能帶來三大核心價值:

  1. 持續的數據收集: 你可以建立一個長期的數據資料庫。例如,每天抓取特定股票的討論文章,持續一年後,你就能分析輿情與股價之間的關係。
  2. 即時的事件監控: 對於有時效性的資訊(例如:限量商品情報、特價機票資訊),你可以設定高頻率的排程(例如每 15 分鐘一次),在第一時間捕捉到關鍵動態。
  3. 解放你的時間與注意力: 設定好排程後,n8n 就會 24 小時不間斷地為你工作。你再也不需要記得每天要去檢查網站,所有資訊都會在指定的時間,自動送到你的面前。

Cron vs. Schedule 節點:我該選擇哪一個觸發器?

n8n 提供了兩種時間驅動的觸發器:ScheduleCron。我該如何選擇?

  • 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 語法。

n8n cron 爬蟲

實戰演練:建立一個「每日 PTT 電影版情報」自動抓取工作流

現在,讓我們將 Cron 節點與我們先前學會的 PTT 爬蟲流程結合起來。

  • 目標: 每天晚上 10 點,自動抓取 PTT 電影版第一頁的所有文章標題與連結,並將結果存入 Google Sheets。
  • 流程設計: Cron -> HTTP Request (Cookie) -> HTTP Request (Scrape) -> HTML Extract -> Set -> Google Sheets
  1. Cron 節點 (觸發器):
    • 新增 Cron 節點。
    • Mode: Every Day (或者你可以選擇 Cron 並手動輸入)。
    • Hour: 22 (代表晚上 10 點)。
    • Minute: 0
    • 重要: 請確保你的 n8n 實例已經設定了正確的時區 (GENERIC_TIMEZONE=Asia/Taipei),否則這裡的 22 點會被解讀為 UTC 時間!
  2. HTTP Request (Cookie & Scrape) 節點:
    • 這部分的設定,與我們在「n8n 爬蟲實戰教學」中學到的完全一樣。
    • 第一個 HTTP Request 節點透過 POST 請求,取得 over18 的 Cookie。
    • 第二個 HTTP Request 節點帶著這個 Cookie,去 GET 文章列表頁的 HTML。
  3. HTML Extract 節點:
    • 同樣,設定與爬蟲教學中完全相同。
    • 使用 CSS Selector (.title a 等) 來提取標題、連結、作者和日期。
  4. Set 節點:
    • 整理資料,例如將相對路徑的連結,補上 https://www.ptt.cc 變成完整的 URL。
  5. Google Sheets 節點:
    • 設定好你的 Google Sheets 憑證與檔案。
    • 使用 Append or Update 操作,將爬取到的結構化資料,一筆一筆地新增到你的試算表中。

啟用這個工作流後,你就擁有了一個全自動、每天準時為你工作的 PTT 情報員!

排程爬蟲的最佳實踐與注意事項

  • 尊重對方伺服器 (Be Nice): 自動化爬蟲會對目標網站的伺服器造成負擔。請將你的排程頻率設定在一個合理的範圍內。對於 PTT 這種更新頻繁的論壇,幾小時抓一次通常已足夠;對於新聞網站,一天抓一次可能就夠了。切勿設定每秒或每分鐘執行的超高頻率爬蟲。
  • 處理重複資料: 如果你的爬蟲會持續將資料寫入同一個資料庫或試算表,你需要一個機制來避免重複。在寫入前,你可以先用資料庫節點的 Find 或 Google Sheets 的 Search 操作,根據「文章連結」這個唯一值,來檢查該筆資料是否已經存在。
  • 加上錯誤處理: 排程任務都在背景執行,如果失敗了你可能不會馬上知道。強烈建議在 HTTP Request 等可能失敗的節點上,啟用錯誤處理機制,在出錯時自動發送一則通知給你,讓你能及時修復問題。
n8n cron 爬蟲

結語

Cron 節點是 n8n 中將一次性的手動任務,轉化為持續性自動化系統的關鍵。它為你的工作流賦予了時間的維度,讓 n8n 能夠在最精準的時刻,主動地為你執行任務。

今天,你不僅徹底學會了 Cron 這個強大排程語法的奧秘,更將它應用在了一個極具實用價值的「自動化排程爬蟲」專案上。這套「排程 + 爬蟲 + 數據儲存」的組合拳,是你建立任何自動化監控與數據收集系統的基礎。現在,就去思考一下,還有哪些你希望每天、每週、每月定時去關注的網路資訊,並為它們打造一個專屬的 Cron 自動化工作流吧!

更多精選文章請參考

n8n 與 Zapier 比較:該選哪個?2025年最完整功能、費用、優缺點分析

開源自動化工具推薦:從工作流程到測試,找到最適合你的免費方案

n8n 發送 Email 超詳細教學:從 SMTP 設定到 Gmail 節點串接,一篇搞定!

n8n Notion 串接終極指南:2025 年打造自動化工作流程,效率翻倍!

【n8n 教學】最強 n8n 網頁爬蟲指南,免寫程式也能輕鬆抓取網站資料!

【n8n 教學全攻略】2025最新!從入門到串接實戰,打造你的自動化工作流

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端