
當你掌握了 n8n 爬蟲的基礎,能夠從網頁上輕鬆提取文字和連結後,你很快就會遇到下一個更具挑戰性的任務:如何自動下載網頁上的圖片、PDF 報告、CSV 數據表,或其他任何類型的檔案?
你可能想:
- 每天自動從你喜愛的攝影網站,下載最新的高畫質桌布。
- 批次抓取競爭對手電商網站上,數百張高清的商品圖片。
- 自動登入供應商後台,下載每個月的 PDF 對帳單並歸檔。
這些「檔案下載」的需求,與我們之前處理的「文字抓取」有著本質上的不同。它不再只是單純地解析 HTML,而是需要處理「二進制資料 (Binary Data)」。幸運的是,n8n 為此提供了完整且直觀的解決方案。
這篇文章將是你的 n8n 檔案下載終極指南。我們將帶你深入理解 n8n 如何處理二進制資料,並透過一個「偵查 -> 下載 -> 儲存」的三部曲實戰教學,手把手教你如何建立一個能夠自動從 Unsplash 這類圖庫網站,下載高品質圖片的完整工作流。
從文字到檔案:認識 n8n 中的「二進制資料 (Binary Data)」
在我們動手之前,必須先建立一個核心觀念。在 n8n 的世界裡,資料主要有兩種形式:
- JSON 資料 (JSON Data): 這是我們最熟悉的格式,n8n 中絕大多數的資料都是以 JSON 物件的形式在節點之間流動。它非常適合用來表示結構化的文字資訊,例如
{"name": "John", "age": 30}
。 - 二進制資料 (Binary Data): 圖片 (JPG, PNG)、PDF 文件、ZIP 壓縮檔、影片等,這些都不是單純的文字,它們在電腦中是以一長串
0
和1
的二進制數據流存在的。n8n 為了處理這類資料,設計了一個特殊的「二進制資料」屬性。
當一個節點(例如 HTTP Request
)成功下載了一個檔案後,它會在輸出的 Item 中,附加一個名為 binary
的特殊屬性。所有後續需要處理這個檔案的節點(例如 Write Binary File
或 Google Drive
),都會自動去讀取這個 binary
屬性中的內容。
我們的任務,就是要透過工作流,完成從「找到檔案 URL」到「觸發下載並生成二進制資料」再到「將二進制資料儲存起來」的完整過程。
檔案下載的三部曲 (一):用 HTML Extract
節點抓取檔案 URL
在下載任何檔案之前,我們必須先知道它的「地址」,也就是這個檔案的直接連結 (Direct URL)。這一步,就是一個標準的網頁爬蟲任務。
- 目標: 從一個網頁中,提取出所有
<img>
圖片標籤的src
屬性,或是所有<a>
下載連結標籤的href
屬性。 - 核心工具:
HTML Extract
節點。
操作步驟:
- 使用
HTTP Request
節點抓取目標網頁的 HTML。 - 連接
HTML Extract
節點。 - Extraction Values > Add Value:
- Key:
imageUrl
(或fileUrl
) - CSS Selector:
img.product-image
(抓取圖片) 或a.download-link
(抓取下載連結)。 - Return Value:
Attribute
。 - Attribute:
src
(對於<img>
標籤) 或href
(對於<a>
標籤)。
- Key:
完成這一步後,你的 n8n 就會輸出一系列的 Items,每一個 Item 都包含了一個指向具體檔案的直接 URL。

檔案下載的三部曲 (二):用 HTTP Request
節點下載檔案內容
現在我們有了檔案的地址,下一步就是派 HTTP Request
節點去把檔案的「內容」拿回來。這一步是整個流程中最關鍵的設定。
- 目標: 根據上一步抓取到的 URL,下載檔案的二進制數據。
- 核心工具:
HTTP Request
節點。
操作步驟:
- 將
HTML Extract
的輸出,連接到一個新的HTTP Request
節點。n8n 的自動迴圈機制會為我們抓到的每一個 URL,都執行一次這個下載請求。 - URL (使用 Expression):
{{ $json.imageUrl }}
(動態地從傳入的 Item 中,讀取我們要下載的 URL)。 - 關鍵設定: 點開「Options」分頁。
- Response Format: 將預設的
JSON
,改為File
。
- Response Format: 將預設的
這個「Response Format: File」的設定,是在告訴 n8n:「我預期這次請求的回應,不是一段 JSON 文字,而是一個檔案。請你將收到的數據,當作『二進制資料』來處理。」
執行這個節點後,你會在輸出中看到,每一個 Item 的 binary
屬性下,都包含了一個檔案,並附有其檔名 (File Name) 和媒體類型 (MIME Type)。
檔案下載的三部曲 (三):用 Write Binary File
儲存你的成果
我們已經成功地將檔案的二進制數據下載到 n8n 的記憶體中了。最後一步,就是將這些數據,儲存成一個真實的檔案。
- 目標: 將下載的二進制資料,寫入到 n8n 伺服器運行的本地資料夾中。
- 核心工具:
Write Binary File
節點。
操作步驟:
- 將下載用的
HTTP Request
節點,連接到Write Binary File
節點。 - File Path: 設定你要儲存檔案的路徑與檔名。這個欄位支援 Expression,讓你能動態命名。
- 範例:
/data/downloads/{{ $binary.fileName }}
- 解說:
$binary.fileName
是一個特殊的變數,可以自動獲取 n8n 從下載過程中識別到的原始檔名。
- 範例:
- Input Field Name:
data
(這是預設值,代表我們要寫入的是binary
屬性中的data
部分)。
完整實戰演練:打造一個「Unsplash 圖片」自動下載器
- 目標: 搜尋 Unsplash (一個對開發者友善的免費圖庫) 上關於「Taiwan」的圖片,並下載搜尋結果第一頁的所有圖片。
- 流程設計:
Start
->HTTP Request (抓取搜尋頁)
->HTML Extract (提取圖片URL)
->HTTP Request (下載圖片)
->Write Binary File (儲存圖片)
HTTP Request
(抓取搜尋頁):- URL:
https://unsplash.com/s/photos/taiwan
- Headers: 記得設定 User-Agent 來偽裝成真實瀏覽器。
- URL:
HTML Extract
(提取圖片URL):- CSS Selector:
img[itemprop="thumbnailUrl"]
(這是 Unsplash 搜尋結果圖片的 Selector 之一,可能會變動)。 - Return Value:
Attribute
, Attribute:src
。
- CSS Selector:
HTTP Request
(下載圖片):- URL (Expression):
{{ $json.src }}
- Options > Response Format:
File
- URL (Expression):
Write Binary File
(儲存圖片):- File Path (Expression):
/data/unsplash_images/taiwan_{{ $runIndex }}.jpg
- 解說: 我們使用
$runIndex
(迴圈的執行次數) 來為每一張下載的圖片,產生一個獨一無二的檔名,避免檔案互相覆蓋。
- File Path (Expression):
啟用這個流程後,n8n 就會為你自動完成搜尋、解析、下載、儲存的所有步驟!
進階應用:將下載的檔案自動上傳到 Google Drive
如果你不想將檔案儲存在 n8n 的本地伺服器,而是想直接歸檔到雲端,流程也同樣簡單。你只需要將最後一步的 Write Binary File
節點,替換成對應的雲端儲存節點即可。
- 目標: 將 Unsplash 下載的圖片,自動上傳到 Google Drive 的「桌布收藏」資料夾。
- 替換節點:
- 將
HTTP Request (下載圖片)
節點的輸出,改為連接到Google Drive
節點。 - Operation:
Upload
- Parent Folder ID: 填入你的「桌布收藏」資料夾的 ID。
- Binary Property:
data
(告訴 Google Drive 節點,要上傳的檔案內容,在binary
屬性中)。 - File Name (Expression):
taiwan_wallpaper_{{ $runIndex }}.jpg
- 將

結語
n8n 讓「檔案下載」這項看似複雜的爬蟲任務,變得有條不紊。透過「抓取 URL -> 下載 Binary -> 儲存 File」這個標準的三部曲流程,你可以清晰地將任務拆解,並利用 n8n 強大的節點生態系,將成果儲存到任何你想要的地方。
掌握了檔案的自動化下載與歸檔能力,你的 n8n 爬蟲就不再只是一個資訊的「閱讀者」,更是一個數位資產的「收藏家」。從今天起,就去打造一個專屬於你的圖片、報告或任何文件的自動化下載工作流吧!
更多精選文章請參考
n8n 與 Zapier 比較:該選哪個?2025年最完整功能、費用、優缺點分析
開源自動化工具推薦:從工作流程到測試,找到最適合你的免費方案
n8n 發送 Email 超詳細教學:從 SMTP 設定到 Gmail 節點串接,一篇搞定!
n8n Notion 串接終極指南:2025 年打造自動化工作流程,效率翻倍!