美式賣場好市多(Costco)每期的特價優惠總能吸引大批人潮,但對於非每週踩點的會員、或是非會員卻想精準鎖定特定商品的消費者來說,隨時盯著官網刷價格不僅極其繁瑣,還非常容易錯過限時折扣檔期。
為了解決這個生活痛點,我透過 Google 試算表(Google Sheets) 結合 AI 工具(ChatGPT 與 Google AI Studio),打造出一套「每日自動檢查價格變動、降價或特價結束恢復原價時即時發送 Email」的自動化通知系統。最令人驚喜的是,這套系統完全不需要撰寫複雜的 Python 網頁爬蟲。
本文將為你深度拆解這套低程式碼(Low-Code)自動化流程中,最具實用價值與啟發性的四大關鍵洞察。
洞察一:妥協的技術哲學——「公式 + 手動」比硬幹爬蟲更穩固
剛開始構思這個系統時,直覺會想在 Google Apps Script 中撰寫網頁爬蟲程式(Web Scraper),試圖全自動抓取好市多官網上的所有頁面資訊。然而實際測試後發現,官網的網頁結構對於單純的指令腳本極不友善,Apps Script 很難穩定且解析出正確的商品原價與折扣細節。
面對技術瓶頸,我選擇了靈活的「混合自動化模式」(Hybrid Automation):
- 明確的欄位分工:在 Google 試算表中劃分欄位,商品的「
商品原價」與「線上原價」由使用者手動輸入一次(因為商品基準原價通常長期保持固定);而最具時效性的動態欄位「目前價格」,則利用試算表內建的import類公式自動擷取官網線上頁面的當前售價。 - 低維護成本:將原本需要高強度解析 HTML 的工作,簡化為公式比對「
目前價格」與基準價的價差。
「不用寫爬蟲、原價自己打上去,只要有特價通知我就夠了!」
專欄點評:許多自動化愛好者容易陷入「100% 自動化」的迷思,認為手動輸入就是不夠高明。但事實證明,適度接受手動維護固定靜態資料,將複雜的網頁解析降級為簡潔公式,系統反而能避開網站改版造成的腳本崩潰,達到極高的穩定度與維護性。
洞察二:把 AI 當雙向協作工程師——從 ChatGPT 靈感到 AI Studio 的精準 Constraint
要讓 AI 產出真正可用且簡潔的程式碼,關鍵在於分工定位與下達明確的「約束條件(Constraint)」:
- 階段一:概念驗證(ChatGPT) 先以直白的情境向 ChatGPT 提問:「我想用試算表查詢台灣好市多某一商品是否有特價」,並提供特定商品網址進行可行性評估。ChatGPT 確認了以試算表搭配腳本處理的可行性,幫助建構初步架構。
- 階段二:程式精準生成(Google AI Studio) 轉向 Google AI Studio 請求生成 Google Apps Script 腳本。初始生成的程式碼習慣性包含發送 HTTP 請求去爬取網頁的邏輯,這時必須下達精準的提示修正:
「不用寫爬蟲,我已經有使用公式了(透過 import 抓好當前價格)。你只要幫我專注在比對價格異動與發送郵件的邏輯即可。」
AI 收到這項約束後,迅速刪除多餘的爬蟲模組,產出一份結構乾淨、專注於邏輯判斷與 Email 觸發的輕量化腳本。
專欄點評:與 AI 協作時,不要期待 AI 幫你做完全部決策。清晰交代「既有條件」(已用公式抓好價格)與「核心目的」(比對與發信),給予 AI 明確的邊界,才能讓 AI 生成最適解法。
洞察三:Event-Driven 事件驅動通知——只在「改變」時發聲,打造不打擾的自動化
沒有人希望自己的電子信箱每天被「價格未變動」的無意義郵件洗版。這套系統的 Apps Script 採用了「事件驅動(Event-Driven)」機制,系統會記錄並比對上一次檢查的狀態,僅在商品的價格「狀態發生改變」時才觸發寄信通知:
- 開始特價首次通知:當系統偵測到商品價格低於原價,發送降價喜訊。信件格式清晰包含商品名稱、原價、特價金額、省下的金額與直接購買連結。
【好市多商品價格異動 - 開始特價首次通知】
- 商品:善存 葉黃素 液態軟膠囊 140 顆
- 線上原價:1029 元 | 目前特價:829 元(節省 200 元)
- (信件內附直連購買連結)
- 特價結束恢復原價通知:當特價檔期結束、商品價格回升時,系統同樣會發出狀態變更通知:
【好市多商品價格異動 - 以下商品特價已結束恢復原價】
- 桂格 減糖 黑十穀(恢復原價 369 元)
- 明治 奶油三明治家庭號(恢復原價 359 元)
自動化排程設定
在 Apps Script 的「觸發條件(Triggers)」中,設定為「時間驅動(Time-driven)」,選用「日計時器」,指定每天早上 7 點至 8 點 自動執行。每天晨喚時,系統就已經自動比對完畢並完成回報。
專欄點評:好的自動化系統不只要能運作,更要懂得「不打擾」。狀態改變才通知的思維,能有效避免資訊疲勞,真正提升數位生活品質。
洞察四:邊界思維——理解工具極限,手動排除特殊商品
任何自動化方案都有其適用邊界。在測試過程中,系統也展現出了特定的極限:
- 特殊標示商品無法自動抓取:官網上部分標示為「獨家特賣」的商品(例如:明治牛奶雪糕等),因為頁面上完全沒有標示公開的線上售價資訊,導致試算表中的
import公式會回傳錯誤訊息:
"檢查不到價格 / 找不到"實務排除建議:一旦公式傳回「檢查不到價格 / 找不到」,代表該商品的網頁結構無法被公開抓取。身為使用者,無須硬幹程式,直接將該商品手動從自動化清單中移除即可。
專欄點評:理解工具的極限與邊界條件(Edge Cases),並在邊界外適時以手動干預接管,是確保整體自動化系統穩定運作不崩潰的重要素養。
結尾:四步驟輕鬆複製,開啟你的生活小自動化
想要擁有專屬的好市多降價報喜神器嗎?跟著以下四個步驟即可快速部署:
- 建立副本與允許存取:取得試算表範本並複製到個人 Google 雲端硬碟,開啟試算表時,點選上方出現的 「允許存取」,授權試算表向外部網頁擷取資料。
- 填寫商品資料與複製公式:填入欲追蹤的
商品名稱、商品連結、商品原價與線上原價,並向下拖曳複製import公式,使目前價格欄位成功帶出當前售價。 - 部署 Apps Script 與完成權限審核:
- 進入點選 擴充功能 > Apps Script,在程式碼中填入你接收通知的 Email。
- 手動選擇並執行一次
check商品是否折扣函式。此時系統會彈出權限審核視窗,點選 進階 > 前往不安全視窗 > 勾選全選權限 > 繼續/允許 完成首次授權。
- 設定時間驅動觸發器:在 Apps Script 左側選單點選「觸發條件」,新增觸發條件:設定事件來源為 「時間驅動」、類型為 「日計時器」,指定執行函式為 send notify email,時間選擇每日 早上 7 點至 8 點。
簡單幾步,就能打造出完全屬於你的數位生活神隊友!
思考題:在你每天的生活或工作中,還有哪一個重複性高、繁瑣卻極有價值的小動作,可以用這套「AI + 試算表」的思維重新設計一次?不妨今天就動手嘗試吧!