type
status
date
slug
summary
tags
category
icon
password
一個能快速抓取 Kobo「一週99」書單、擷取書籍詳細資料,再依日期判斷當日書單,發送通知的自動化流程。
研究背景
這是來自於個人的需求。(看我有多懶)
Kobo 每個星期都會在官方部落格推出「一週99」優惠書單,對經常購買電子書閱讀又小資的我來說,相當實用(是時候挖寶)。然而痛點就難在「每週要想起這件事」已經好不容易,又需手動找到優惠網頁、研究且留意何日優惠何書、書籍簡介內容對不對胃口等資訊,容易漏掉又耗時繁瑣。
便想試試如何使用自動化流程解放我的時間。
主要功能
使用 Python(Browser-Use) + n8n 實作:
[1]
Python(Browser-Use)
- 自動化抓取該周 Kobo「一週99」主頁中的書單分段
- 進入每本書的「查看電子書」頁面,擷取:
- 書名全名
- 作者(多作者都擷取)
- 內容簡介
- 詳細資料(出版社、出版日、版本、ISBN、語言、下載選項)
- 同步產出 CSV 與結構化 JSON
- 自動上傳到 Google Drive 雲端放
n8n
執行自動化流程
- 每日抓取對應雲端檔案過濾出對應該日書單
- 將書籍資料傳給AI總編製作摘要
- 彙整書籍資料推送通知至Discord
[1]
原想使用 n8n 作全程,從爬蟲一路用到底,無奈 KOBO 頁面有所限制。最後決定使用 Browser-Use 處理爬蟲資料那段,也算新嘗試新學習。設計與實作技術
PART1:Python(Browser-Use)
- 程式語言:Python 3.11(使用Anaconda 建立虛擬環境)
- 瀏覽器自動化:Browser-Use 套件(底層由 Playwright 驅動)
- 資料輸出:CSV + JSON
- 雲端存放:Google Drive
PART2:n8n

各節點模組功能介紹與設定
- Schedule Trigger: 排程觸發工作流,每天上午十點跑一次。
- Code: 抓取系統今日日期去計算周數。
- Google Drive-Search File: 找到對應該周的書單 json 檔案名稱。
- Google Drive-Download File: 下載找到的 json。
- Extract from JSON: 把 json 解析編碼出來。
- Split Out: 把該周書單一本一本書分出來。
- If: 找到對應今日的書籍資料。
- Loop Over Items: (因為有可能一天有兩本書以上)要使用迴圈一本一本送資料。
- 書本迴圈:
- Basic LLM Chain: 引入這個節點,來讓 Gemini(要先去Google AI Studio申請API KEY) 分析書名+簡介內容作分類與摘要。
- Edit Fields: 對LLM弄出來的資料命名。
- Discord-Send a message: 選用 webhook 網址,設定n8n傳送的通知格式內容。
- 結束迴圈:
- Summarize: 結束Loop節點後,總結本日幾本書。
- Discord-Send a message: 選用 webhook 網址,設定 n8n 傳送的通知格式內容。
開發問題筆記
- 套件間版本打架,降版去嘗試可行性
- 一週99書單的網址有規律:
尾數是西元年份、周數(要以週四-隔週三為一週)https://www.kobo.com/zh/blog/weekly-dd99-2025-w24
https://www.kobo.com/zh/blog/weekly-dd99-
yyyy
-wnn
- 進入頁面時需考量想抓取的html標籤數量是否兩個以上,需要只取特定一個。例:優惠主頁h3(抓日期)、書籍頁面內h1(抓書名全名)。
- 分兩段爬取需要的資料
- 優惠主頁:抓
日期
、書名
、書籍連結(取一個)
三項 - 透過書籍連結開新分頁:抓
書名全名
、作者(多作者都擷取)
、內容簡介
、詳細資料(出版社、出版日、版本、ISBN、語言、下載選項)


- Google Drive 憑證留意要到 GCP 上的
IAM與管理
>服務帳戶
>建立服務帳戶+新增金鑰+下載JSON
- 改善開發體驗:
- 適時於終端機印提示,好掌握目前進度
- Gemini 的 prompt 需要要求明確:


實測效果





贊助支持鼓勵
如果這篇文章對你有所幫助或解惑,歡迎您賞我一杯啤酒🍻