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

n8n爬蟲 教學

你是不是也曾為了收集網路上的資料,而陷入不斷「複製、貼上」的地獄循環?無論是想追蹤競品的最新價格、分析市場趨勢,還是整合不同來源的資訊,手動整理資料不僅耗時,更容易出錯。想學寫程式又覺得門檻太高,難道就沒有更聰明的方法嗎?

別擔心,你需要的正是一套強大的自動化工具。今天,我們要介紹的就是近年來在自動化領域迅速竄紅的神器——n8n。它讓我們即使不懂程式,也能透過視覺化的流程,輕鬆打造出專屬的「網頁爬蟲」,將繁瑣的資料抓取工作徹底自動化。

這篇文章會從零開始,帶你一步步認識 n8n 在網頁爬蟲上的強大之處,並透過詳細的實戰教學,教你如何建立第一個從網站抓取資料,並自動存到 Google Sheets 的工作流。準備好跟我們一起解放雙手,邁向高效的資料自動化之路了嗎?

到底什麼是 n8n?為什麼它適合做網頁爬蟲?

在深入探討爬蟲技術前,我們得先搞懂 n8n 究竟是什麼。簡單來說,n8n 是一個開源的、以節點(Node)為基礎的工作流自動化工具。你可以把它想像成數位世界的樂高積木,每一個「節點」都代表一個特定的應用程式或一個動作(例如:讀取網頁、寫入資料庫、發送 Email),而你只需要用滑鼠將這些積木(節點)串連起來,就能打造出一個完整的自動化流程。

相較於其他自動化工具,n8n 在執行網頁爬蟲任務時,具備了以下幾個無可取代的優勢:

  1. 視覺化與低程式碼:傳統的網頁爬蟲大多需要使用 Python 等程式語言來撰寫腳本,學習曲線相當陡峭。而 n8n 提供視覺化的操作介面,大部分的爬蟲設定都能透過點擊和填寫參數完成,大幅降低了技術門檻。
  2. 高度靈活性與強大功能:n8n 的核心爬蟲節點 HTTP Request 功能非常強大,可以讓你自訂請求標頭(Headers),模擬瀏覽器行為,有效應對一些基礎的反爬蟲機制。對於解析網頁內容,更有 HTML Extract 節點,讓你用簡單的 CSS 選擇器就能精準抓取目標資料。
  3. 豐富的生態系整合:抓取資料只是第一步,後續的處理與應用才是關鍵。n8n 支援數百種應用程式的串接,你可以輕易地將爬取到的資料自動寫入 Google Sheets、Airtable、Notion,或是存進 MySQL、PostgreSQL 等專業資料庫,甚至觸發 Slack、Email 通知,打造一個完整的數據處理管道。
  4. 成本效益極高:n8n 提供免費的社群版,你可以將它部署在自己的伺服器上,幾乎沒有執行次數或工作流數量的限制,對於需要頻繁、大量抓取資料的場景來說,成本效益遠高於許多按量收費的 SaaS 服務。

總結來說,n8n 就像一把瑞士刀,它不僅簡化了網頁爬蟲的複雜性,更將其與後續的資料處理流程無縫接軌,讓「抓取資料」不再是一個孤立的技術任務,而是整個自動化工作流中至關重要的一環。

n8n爬蟲 教學

建立 n8n 網頁爬蟲工作流前的準備工作

俗話說「工欲善其事,必先利其器」。在打開 n8n 畫布開始拖拉節點之前,一些前置的準備工作能讓你的爬蟲流程事半功倍,更能確保抓取的成功率。這一步驟的關鍵在於:徹底了解你的目標網站

  • 分析目標網頁結構 在你動手之前,先用你的瀏覽器好好「偵查」一下目標網站。你需要找出你真正想抓取的資料在哪裡。這時候,瀏覽器的「開發者工具」就是你的最好朋友。
    • 如何開啟:在想查看的網頁元素(例如商品名稱或價格)上點擊右鍵,選擇「檢查」(Inspect)。
    • 要做什麼:在跳出的程式碼中,找到對應的 HTML 標籤,並記下它的「CSS 選擇器」(CSS Selector),例如它的 classid。這就像是資料的門牌號碼,我們稍後會告訴 n8n 按照這個門牌號碼去找資料。例如,一個價格的 HTML 可能是 <span class="price-tag">$1,999</span>,那麼 .price-tag 就是一個很好的 CSS 選擇器。
  • 確認網站類型:靜態 vs. 動態 這是非常關鍵的一步。你需要判斷網站的內容是「靜態」的還是「動態」的。
    • 靜態網站:你所看到的資料,在網頁一載入時就已經寫在 HTML 原始碼裡了。這種網站最單純,n8n 的基礎節點就能輕鬆處理。
    • 動態網站 (JavaScript 渲染):許多現代網站為了提升使用者體驗,會先載入一個網頁框架,再透過 JavaScript 非同步地去載入實際資料(例如你往下滾動才載入更多商品)。這種情況下,直接查看 HTML 原始碼可能找不到你要的資料。這類網站的爬取會複雜一些,可能需要動用到更進階的工具或技巧。
  • 尊重遊戲規則:查看 robots.txt 一個負責任的爬蟲開發者,會先拜訪網站的「君子協定」——robots.txt 檔案。你只要在網站主域名後面加上 /robots.txt(例如 https://www.example.com/robots.txt)就可以看到它。這個檔案會告訴網路爬蟲,網站上的哪些路徑是不希望被自動抓取的。雖然這沒有強制約束力,但遵守它是一個基本的網路禮儀,也能避免對目標網站伺服器造成不必要的負擔。

做好這些偵查工作,你就像是拿到了一張藏寶圖,對於要挖的寶藏(資料)在哪裡、路上可能有哪些機關(動態載入)都瞭若指掌。接下來,我們就可以正式進入 n8n 的世界,解析爬蟲的核心節點了。

n8n 網頁爬蟲核心節點大解析:HTTP Request 與 HTML Extract

在 n8n 中,完成一個基礎的網頁爬蟲工作流,主要依賴兩個核心節點的完美配合。它們分別是負責「取得網頁」的 HTTP Request 節點,以及負責「解析資料」的 HTML Extract 節點

1. HTTP Request 節點:你的網頁資料獲取器

這個節點是所有爬蟲任務的起點,它的任務很單純:向指定的 URL 發出請求,並將整個網頁的 HTML 原始碼抓回來。

  • 如何設定
    • URL:這是最重要的參數,直接貼上你要抓取的目標網頁網址。
    • Authentication:如果目標網站不需要登入,通常選擇 None 即可。
    • Options (選項) > Headers:這是一個進階但有時非常重要的設定。有些網站會檢查請求的 User-Agent 來判斷你是不是機器人。在這裡,你可以新增一個 Header,名稱設為 User-Agent,值可以填上你瀏覽器的 User-Agent 字串(可以 Google “my user agent” 找到),模擬成一個真實的瀏覽器來降低被阻擋的機率。

當這個節點成功執行後,你可以在輸出結果中看到一個名為 data 的欄位,裡面裝的就是目標網頁的完整 HTML 程式碼。

2. HTML Extract 節點:你的資料精準提煉器

光有整頁的 HTML 是不夠的,我們需要從中提煉出我們真正關心的資訊,例如商品標題、價格、評論數等。這時候,HTML Extract 節點就派上用場了。

它的運作原理,就是利用我們在準備工作中找到的「CSS 選擇器」(資料的門牌號碼),從 HTML 這團原始碼中,精準地把對應的資料撈出來。

  • 如何設定
    • Source Data:指定資料來源。通常我們會保持預設,讓它自動抓取上一個 HTTP Request 節點回傳的 HTML 內容。
    • Extraction Values (提取值):這是設定的重點。你可以點擊 Add Extraction 來新增想抓取的每一筆資料。
      • CSS Selector:在這裡貼上你先前找到的 CSS 選擇器。例如,想抓取 class="title" 的標題,就輸入 .title;想抓取 id="price" 的價格,就輸入 #price
      • Return Value:選擇你要回傳的是標籤內的「文字 (Text)」、「HTML 原始碼 (HTML)」,還是某個屬性值(例如 href 連結)。抓取品名或價格時,最常用的是 Text
      • Key:為這筆抓取到的資料取一個好記的名稱,例如 productNameprice。這個名稱將會成為後續節點使用的欄位名稱。

只要正確設定好這兩個節點,你就完成了一個最基礎的爬蟲核心。HTTP Request 節點負責把整片礦山(HTML)挖回來,而 HTML Extract 節點則像一台精密的篩選機,幫你從礦石中篩選出閃閃發光的黃金(目標資料)。

實戰教學:一步步帶你用 n8n 爬取商品價格並存入 Google Sheets

理論說再多,不如實際動手做一次。接下來,我們將引導你完成一個非常實用的範例:自動爬取特定商品的價格,並將價格與抓取時間記錄到 Google Sheets 中,建立一個簡易的價格追蹤器。

步驟一:設定觸發方式 (Start Node & Schedule)

每個 n8n 工作流都由一個「Start」節點開始。為了讓爬蟲能定時自動執行,我們需要加入一個排程觸發器。

  1. 點擊 Start 節點,在 Trigger 處選擇 Schedule
  2. Trigger Interval 設定你希望爬蟲執行的頻率,例如選擇 Every Day,並設定一個執行的時間(如 9am)。這樣 n8n 就會在每天早上九點自動幫你跑一次流程。

步驟二:抓取網頁內容 (HTTP Request Node)

  1. 點擊畫面上的「+」號,新增一個 HTTP Request 節點。
  2. URL 欄位中,貼上你要追蹤的商品頁面網址。
  3. (可選)為了提高成功率,點擊 Add Option > Header,新增一筆 User-Agent
  4. 點擊 Execute Node 測試一下,確認節點右下角出現綠色勾勾,代表成功抓回 HTML。

步驟三:解析商品名稱與價格 (HTML Extract Node)

  1. 新增一個 HTML Extract 節點,將它連接在 HTTP Request 節點後面。
  2. 點擊 Add Extraction,我們來設定第一個要抓取的資料:商品名稱。
    • CSS Selector:輸入你找到的商品名稱的 CSS 選擇器(例如 .product-title)。
    • Return Value:選擇 Text
    • Key:命名為 productName
  3. 再次點擊 Add Extraction,設定第二個要抓取的資料:商品價格。
    • CSS Selector:輸入商品價格的 CSS 選擇器(例如 .price)。
    • Return Value:選擇 Text
    • Key:命名為 price
  4. 執行此節點,檢查輸出結果是否成功抓到了商品名稱和價格。

步驟四:整理資料格式 (Set Node)

雖然這一步不是必須的,但養成整理資料的好習慣,能讓後續串接更順利。Set 節點可以幫我們建立一個乾淨、固定的資料結構。

  1. 新增一個 Set 節點。
  2. 勾選 Keep Only Set,這樣可以只保留我們設定的欄位。
  3. 點擊 Add Value,新增三個值:
    • Name: NameValue: 從左邊的 Input Data 拖拉 productName 欄位過來。
    • Name: PriceValue: 拖拉 price 欄位過來。
    • Name: TimestampValue: 輸入 {{ $now }},這是 n8n 的內建變數,可以取得當前的執行時間。

步驟五:寫入 Google Sheets (Google Sheets Node)

最後一步,就是將我們辛苦抓取並整理好的資料存起來。

  1. 新增 Google Sheets 節點。
  2. Authentication:第一次使用需要授權 n8n 存取你的 Google 帳號。
  3. Operation:選擇 Append or Update,表示在表格中新增資料。
  4. Sheet ID:在你的 Google Sheets 網址中找到那串亂碼,貼上來。
  5. Sheet Name:填寫你的工作表名稱。
  6. Columns > Map Automatically:點擊 Map All Fields,n8n 會聰明地將 Set 節點輸出的 Name, Price, Timestamp 對應到你的 Google Sheets 欄位。

完成以上設定後,點擊右上角的 Execute Workflow 完整跑一次流程,然後去你的 Google Sheets 看看吧!如果一切順利,你應該會看到一筆新的資料,包含了商品名稱、價格以及抓取時間,成功被記錄下來了!

n8n爬蟲 教學

n8n 網頁爬蟲進階技巧與常見問題排解

當你掌握了基礎的爬蟲工作流後,很快就會遇到一些更具挑戰性的情況。別擔心,n8n 的靈活性足以應對這些挑戰。以下是一些常見的進階情境與解決思路:

如何處理分頁(Pagination)?

當你想抓取的資料分散在好幾頁時(例如商品列表的第 1、2、3…頁),手動為每一頁建立一個 HTTP Request 節點顯然不夠聰明。

  • 解決方案:使用 Loop Over Items 節點。
  • 操作思路
    1. 觀察分頁的 URL 規律,通常會是 .../list?page=1, .../list?page=2 這樣的格式。
    2. 你可以先建立一個包含頁碼的陣列(例如 [1, 2, 3, 4, 5])。
    3. 將這個陣列傳給 Loop Over Items 節點,它會為每一個頁碼執行一次後續的流程。
    4. 在迴圈內的 HTTP Request 節點中,將 URL 的頁碼部分動態替換成迴圈正在處理的當前頁碼。這樣就能自動化地抓取所有頁面的資料。

抓不到資料?可能是動態網站(JavaScript 渲染)!

如果你發現用開發者工具看得到資料,但 HTTP Request 抓回來的 HTML 卻找不到,那你很可能遇到了動態網站。n8n 的基礎節點無法執行 JavaScript,所以拿不到動態載入的內容。

  • 解決方案:整合無頭瀏覽器(Headless Browser)服務。
  • 操作思路:你需要一個能實際「渲染」網頁的服務,例如 BrowserlessScrapingBee。這些服務提供了 API,你可以透過 n8n 的 HTTP Request 節點去呼叫它們,請它們打開你的目標網頁、執行完 JavaScript 後,再將最終的 HTML 結果回傳給 n8n。這樣 n8n 就能處理含有完整資料的 HTML 了。

如何避免被網站封鎖?

頻繁地抓取同一個網站,可能會被其反爬蟲機制偵測到並暫時封鎖你的 IP。

  • 解決方案:使用代理伺服器(Proxy)。
  • 操作思路:代理伺服器能讓你透過不同的 IP 位址去發送請求,降低被單一 IP 被鎖的風險。n8n 的 HTTP Request 節點內建了 Proxy 選項,你只需要填入你購買的代理伺服器地址,就能輕鬆實現。此外,在請求之間加入 Wait 節點,設定幾秒的延遲,模擬人類的瀏覽行為,也是一個有效且禮貌的策略。

抓回來的資料格式不乾淨怎麼辦?

有時候抓回來的價格可能是「NT$ 1,999 元」,這種帶有貨幣符號和文字的格式不方便後續的數據分析。

  • 解決方案:使用 Code 節點進行資料清洗。
  • 操作思路:Code 節點讓你能夠用 JavaScript 來對資料進行任意的處理。你可以寫幾行簡單的程式碼,利用正規表達式(Regular Expressions)或字串取代(.replace())等方法,將「NT$」和「元」等無關字元去除,並將結果轉換為純數字格式,再傳給下一個節點。

掌握了這些進階技巧,你使用 n8n 進行網頁爬蟲的能力將會提升到一個全新的層次,足以應對網路上 90% 以上的資料抓取需求。

更多精選文章請參考

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

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

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

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

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

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

發佈留言

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

返回頂端