iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
生成式 AI

30 天生成式 AI 工作流:社群經營者的自動化實戰系列 第 21

Day 21|資料獵人養成記(5) 最後拼圖:用 Set 節點打造完整爬蟲工作流 🧩

  • 分享至 

  • xImage
  •  

當資料散落在數位荒野中,只有懂得串起每一顆珍珠的人,才能編織出知識的項鍊。

前面幾天,我們一步步像探險家一樣,把一本本書的資料從網站上「捕獲」下來,也學會了迴圈、資料清洗、格式處理…

今天,我們要放上最後一塊拼圖,將所有步驟組合成一條完整的自動化爬蟲工作流,一次抓下 books.toscrape.com 上1000 本書的資料

本篇的工作流範本可在此下載(下載連結


研究每個分頁的網址結構

先來觀察這個網站的分頁網址。

  1. 首頁是

    https://books.toscrape.com

  2. 點進第二頁會看到

    https://books.toscrape.com/catalogue/page-2.html

由此可以推論:

第 n 頁的網址格式就是

https://books.toscrape.com/catalogue/page-n.html

✅ 小觀察:即使 n=1,網址雖然變了,但內容跟首頁一樣,這也代表我們可以用規則化的網址,輕鬆生成 50 頁的連結。


用 Set 節點做出 50 個 items 來跑循環

之前在 Day 18 時,我們是從 Airtable 讀出 20 本書的資料作為 items 來跑迴圈。

但這次我們知道網站有 50 頁,就不能靠外部資料了。

📝 Set 節點的用途:用來手動輸入資料,讓資料流可以從這裡開始。

  1. 在第一個流程的手動觸發節點後新增一個 Set 節點,在 Mode 選擇「JSON」
  2. 貼上以下內容:
{
  "n": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]
}

執行後,輸出結果會是:

[{
  "n": [1, 2, 3, ..., 50]
}]

這代表現在只有一個 item,裡面的 n 是一整包 1~50 的陣列。


把陣列分解成 50 個 items

為了讓每一頁可以各自被爬取,我們要把剛剛那包陣列拆成 50 個獨立 items。

  1. 新增一個 Split out 節點
  2. 在「Fields To Split Out」中輸入 n
  3. 執行後就會看到輸出結果變成 50 個 items,key 都是 n,value 則是 1~50

🎉 現在,我們就有了 50 個「任務」,可以送進迴圈中一頁頁抓資料!


建立循環,把之前的爬蟲流程整合起來

接下來,我們要把前面做好的「爬首頁書目 → 拿到每本書連結 → 抓每本書詳細資料 → 寫入 Airtable」這整段流程,放進迴圈裡跑 50 次。

  1. 將 Split out 節點接上 Loop 節點
  2. Loop 節點再連到原本的「HTTP Request」節點開頭
  3. 原本最後的「Airtable:Create or Update a Record」節點,拉一條線回到 Loop 的輸入口(形成一個循環)
  4. 在 HTTP Request 節點的 URL 改成:
https://books.toscrape.com/catalogue/page-{{ $json.n }}.html

{{ $json.n }} 就會根據每次進來的 item 值(1~50)動態替換網址

檢查與修正細節

組合完後,記得要檢查每個節點的輸出是否正確,尤其是網址結構的變化。

  1. 在 HTML Extract 節點看到的書本連結,會變成這樣:

    a-light-in-the-attic_1000/index.html

    (少了原本的 catalogue/

  2. 所以第二段流程中抓每本書詳細資料的 HTTP 節點,URL 要改成:

https://books.toscrape.com/catalogue/{{ $json.URL }}

否則會出現錯誤,因為少了 catalogue/ 目錄。


完成!一鍵跑完整網站資料 🎉

設定好後,點選「Execute Workflow」,工作流就會自動跑 50 個頁面,抓下 1000 本書的所有資料,並更新到 Airtable 裡。

這一系列看似是在做「爬蟲」,其實更重要的是練習資料流:

  • 如何產生資料
  • 如何拆分與處理資料
  • 如何將資料送往目的地

未來遇到任何資料處理的工作,你都可以把這一整套流程複製、拆解、重組再利用。


📌 小作業

  • 本節用 Set + Split out 節點 建立 50 個 items,也可以用 Code 節點 一次生成。試試看請 AI 幫你寫出 JS 程式,輸出 key 為 n、value 為 1~50 的 items。
  • 找一個你真的有興趣的網站,試著做一個爬蟲工作流。如果失敗,記錄你卡在哪裡,查查看有哪些外部工具或資料清理技巧可以幫上忙?

交流

我建立了一個行銷技術交流群,專注討論 SEO、行銷自動化等主題,歡迎有興趣的朋友一起加入交流。

掃QR Code 或點擊圖片加入

https://ithelp.ithome.com.tw/upload/images/20250901/20178495xURUZaqziV.jpg


上一篇
Day 20|資料獵人養成記(4)資料魔術師登場:用 Code 節點清洗資料 ✨
系列文
30 天生成式 AI 工作流:社群經營者的自動化實戰21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言