n8n 爬蟲實戰教學:5 步驟搞定 PTT 電影版,自動抓取最新文章標題與連結

n8n ptt爬蟲

PTT (批踢踢實業坊) 作為台灣最大的網路論壇,無疑是觀察網路輿情、掌握最新話題趨勢的資訊金礦。其中,「電影版 (movie)」更是無數影迷交流心得、討論票房、分享好雷/負雷的第一線戰場。

你是否曾想過,要如何自動化地追蹤電影版的熱門話題?

  • 每天自動抓取所有標題含有「[好雷]」的文章,彙整成一份必看清單。
  • 監控特定電影(例如「沙丘」)的討論熱度,一有新文章就立即收到通知。
  • 將所有文章的標題、作者、日期與連結,自動化地存入 Google Sheets 或資料庫,進行長期的數據分析。

這些聽起來像是需要撰寫複雜 Python 爬蟲程式才能完成的任務,但現在,透過 n8n 這個視覺化的自動化工具,你完全可以在不寫一行程式碼的情況下,輕鬆打造出你專屬的 PTT 爬蟲機器人。

這篇文章將是你最完整的 n8n PTT 爬蟲實戰案例教學。我們將從零到一,聚焦在「電影版」,帶你解決 PTT 最經典的「我已滿 18 歲」驗證問題,並手把手教你如何使用 HTML Extract 節點,精準地從網頁原始碼中,提取出每一篇文章的標題、作者、日期與連結,最終將這些寶貴的資訊,自動化地存入你的 Google Sheets 中。

為什麼要用 n8n 爬取 PTT?你的專屬輿情監測與內容策展中心

在開始動手前,讓我們先釐清用 n8n 來做這件事的價值。一個自動化的 PTT 爬蟲,可以成為你的:

  • 個人化內容過濾器: 你可以設定只抓取包含特定關鍵字(如「[情報]」、「[選片]」)的文章,過濾掉大量雜訊,只看你想看的內容。
  • 輿情監控儀表板: 對於電影發行商或行銷人員來說,可以建立一個工作流,持續監控自家電影的相關討論,並在有「[負雷]」出現時,立即發送警報到 Slack 或 Teams。
  • 內容策展與彙整工具: 自動將每日的熱門文章,彙整成一份摘要,發送到你的 Telegram 頻道或 Email,讓你輕鬆掌握社群動態。

n8n 的視覺化介面,讓這一切的設定,都變得簡單而直觀。

攻克 PTT 的第一道門檻:搞定「我已滿 18 歲」的 Cookie 驗證

如果你直接使用 n8n 的 HTTP Request 節點去抓取 PTT 電影版的網址 (https://www.ptt.cc/bbs/movie/index.html),你會發現抓回來的,永遠是那個詢問你是否已滿 18 歲的「警告頁面」,而不是真正的文章列表。

這是因為 PTT 是透過 Cookie 來記錄你已經同意過這個條款。因此,我們的爬蟲策略必須模擬真人的瀏覽行為:先「同意」一次,取得名為 over18 的 Cookie,然後帶著這個 Cookie,再去請求真正的文章列表頁面。

我們需要使用兩個 HTTP Request 節點來完成這個「兩階段認證」。

步驟一:第一個 HTTP Request 節點 – 取得 Cookie

  1. 新增一個 HTTP Request 節點,將其命名為「Get PTT Cookie」。
  2. Request Method: POST
  3. URL: https://www.ptt.cc/ask/over18
  4. Body Content Type: Form URL Encoded
  5. Body Parameters > Add Parameter:
    • Name: from
    • Value: /bbs/movie/index.html (我們要從電影版來)
    • Name: yes
    • Value: yes
  6. Options 中,將 Split Into Items 這個選項關閉
  7. 執行這個節點。成功後,你會在輸出的 Headers 物件中,找到一個 set-cookie 的欄位,裡面就包含了我們需要的 over18=1; 這個寶貴的 Cookie。

步驟二:第二個 HTTP Request 節點 – 帶著 Cookie 抓取頁面

  1. 在第一個節點後,再接上一個 HTTP Request 節點,命名為「Scrape Movie Board」。
  2. Request Method: GET
  3. URL: https://www.ptt.cc/bbs/movie/index.html
  4. 關鍵步驟:Header 區塊,點擊 Add Header
    • Name: Cookie
    • Value (使用 Expression):{{ $node["Get PTT Cookie"].json.headers["set-cookie"][0].split(';')[0] }}
      • 解說: 這段 Expression 的作用,是從上一個節點回傳的 set-cookie 陣列中,精準地提取出 over18=1 這一段,作為我們請求時要帶上的「通行證」。
  5. 執行這個節點。這次,你會在 Outputbody 欄位中,看到文章列表頁面完整的 HTML 原始碼!我們成功進來了。
n8n ptt爬蟲

從 HTML 原始碼中淘金:使用 HTML Extract 節點精準提取資料

有了完整的 HTML,接下來就要從中「萃取」出我們需要的資訊。這就要靠 n8n 強大的 HTML Extract 節點。這個節點需要你提供 CSS Selector 來定位資料。

PTT 電影版 CSS Selector 大全:

  • 每一篇文章的區塊: .r-ent
  • 文章標題: .title a
  • 文章連結: .title a (需要提取 href 屬性)
  • 文章作者: .meta .author
  • 文章日期: .meta .date

設定 HTML Extract 節點

  1. 在第二個 HTTP Request 節點後,接上 HTML Extract 節點。
  2. Source Data: 預設即可 (From Previous Node's 'body' Field)。
  3. Extraction Values > Add Value: 我們需要為每一項想抓取的資料,建立一條規則。
    • 抓取標題:
      • Key: title
      • CSS Selector: .title a
      • Return Value: Text
    • 抓取連結:
      • Key: link
      • CSS Selector: .title a
      • Return Value: Attribute
      • Attribute: href
    • 抓取作者:
      • Key: author
      • CSS Selector: .meta .author
      • Return Value: Text
    • 抓取日期:
      • Key: date
      • CSS Selector: .meta .date
      • Return Value: Text
  4. 執行節點後,你就會在輸出端看到一個個結構清晰的 JSON 物件,裡面整齊地放著每一篇文章的標題、連結、作者與日期!

完整工作流實戰:從零到一,將 PTT 最新文章自動存入 Google Sheets

現在,讓我們將所有零件組合起來,打造一個每天自動執行、並將結果存入 Google Sheets 的完整流程。

流程設計: Schedule -> HTTP Request (Cookie) -> HTTP Request (Scrape) -> HTML Extract -> Set (整理資料) -> Google Sheets

  1. 觸發器: 將第一個節點換成 Schedule 節點,設定每天早上 9 點執行。
  2. Cookie 與爬取: 按照我們第二大點的教學,設定好兩個 HTTP Request 節點。
  3. 資料提取: 按照第三大點的教學,設定好 HTML Extract 節點。
  4. Set 節點 (整理資料):
    • HTML Extract 抓到的連結是不完整的 (/bbs/movie/M.172569...),我們需要補上 PTT 的主網域。
    • 新增一個欄位 full_link,Value 設為:https://www.ptt.cc{{ $json.link }}
    • 你也可以在這裡過濾掉已被刪除或標題為空的項目。
  5. Google Sheets 節點:
    • Operation: Append or Update
    • 選擇你的試算表和工作表。
    • Set 節點輸出的 title, full_link, author, date 等欄位,一一對應到你試算表中的欄位。

啟用這個工作流後,n8n 就會成為你忠實的資訊搜集員,每天自動為你彙整 PTT 電影版的最新動態!

進階應用與注意事項

  • 排程頻率: 請尊重 PTT 伺服器的資源,不要將排程設定得過於頻繁(例如每分鐘一次)。對於大多數應用,每幾小時或每天執行一次已經足夠。
  • 處理重複資料: 如果你持續將資料寫入同一個表格,你可能會需要一個機制來避免重複寫入。你可以在寫入 Google Sheets 前,先用 Google Sheets (Search) 節點,檢查文章連結是否已存在。
  • 遵守網站規範: 自動化爬取網頁內容,應遵守該網站的 robots.txt 協議與使用條款。請以負責任的態度,在合理的範圍內使用爬蟲工具。
n8n ptt爬蟲

結語

n8n 徹底地將網站爬蟲這項技術,從程式開發者的專利,轉變為任何人都能輕易上手的視覺化工具。今天,你不僅學會了如何攻克 PTT 特有的 Cookie 驗證機制,更掌握了利用 HTML Extract 節點進行精準資料萃取的強大能力。

這套方法不僅適用於 PTT 電影版,你也可以將其稍作修改,應用到 Dcard、各大新聞網站、或是任何你需要持續關注的資訊來源上。現在,就動手打造你的第一個 PTT 爬蟲,讓 n8n 為你 24 小時不間斷地搜集與整理網路世界的寶貴情報吧!

更多精選文章請參考

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

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

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

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

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

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

發佈留言

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

返回頂端