不管是演唱會搶釋出票、熱門商品補貨,還是學校選課候補,手動守在螢幕前按重新整理(F5)不僅累人,速度也比不上機器。很多網站根本沒有提供開放 API,遇到這種情況,我們可以用最直接的辦法:讓 n8n 定時去抓網頁內容,只要發現特定關鍵字或按鈕狀態變了,立刻發出高優先級通知。
第一站:高頻率排程觸發
這種監控任務最講究時效性。在畫布建立「Schedule Trigger」節點,將檢查間隔縮短,比如設定每五分鐘或每兩分鐘執行一次。但也要注意頻率拿捏,間隔太短可能被對方的防護機制判定成惡意攻擊而封鎖 IP,抓個兩到五分鐘檢查一次通常最剛好。
第二站:抓取目標網頁 HTML
接上「HTTP Request」節點,將請求方法設為 GET,網址填上你想盯著的商品頁或售票頁面。為了避免被伺服器誤認成爬蟲而直接擋掉,我們在請求標頭(Headers)裡偽裝一下瀏覽器身分(加上常見的 User-Agent 字串)。按下測試執行後,節點就會把整個網頁的原始 HTML 原始碼完整抓回來。
第三站:提取關鍵狀態文字
網頁原始碼通常夾雜幾萬行程式碼,我們只需要關注那個代表狀態的特定區塊。接上 HTML 擷取節點,利用 CSS 選擇器直接定位到目標元素,比如「購買按鈕」或「庫存狀態欄」。把那個區塊的文字單獨抽出來,通常會拿到類似「已售完」、「補貨中」、「尚有名額」或「立即結帳」這樣的文字。
第四站:比對前後狀態變更
如果每次檢查都發現是「已售完」,那流程跑完就該安靜結束,千萬別把相同狀態一直重複推播吵死自己。我們利用工作流的內部儲存機制,把上一次檢查到的文字記下來。接著接一個「If 條件判斷」節點:比對「本次抓到的文字」是否不同於「上次儲存的文字」,並且「本次文字」包含了「可購買」或「立即結帳」等關鍵字。只有在狀態剛好從買不到變成買得到的那一瞬間,條件才算成立並放行。
第五站:緊急推播通知自己
一旦放行,立刻觸發通知節點。這裡的推播內容一定要清楚且附上購買捷徑,比如標註「商品補貨了!目前狀態:立即購買」,並附上商品頁面直達連結,發到自己的手機通訊軟體裡。點開通知就能直接跳進網頁結帳,徹底解放盯著螢幕的雙眼。明天我們停下腳步做個階段性盤點,回顧前 11 天的心得,並解決自動化過程中最常踩雷的例外錯誤處理。