30 天前,我設定了一個目標:「運用 UiPath RPA 打造一套全自動的全球專利檢索、風險加權、情報視覺化與即時推播系統」
這30天裡,我從最基礎的環境準備、Selector 踩坑開始,一步步推進到多維度規則引擎、解耦 4 大子流程、SaaS 級前端互動儀表板,以及全鏈路的系統抗脆弱驗收。在最後一天,讓我完整復盤這套專利監控系統的演進全貌!
┌─────────────────────────────────────────────────────────────────────────────┐
│ 專利情報監控系統 30 天演進全景 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 階段一:基礎建設與網頁自動化攻堅 (Day 1 - 8) │
│ • Day 1~3:環境建置、為什麼點擊會失效?談談 Selector 與動態反爬對抗 │
│ • Day 4~6:tableRow 動態定位、摘要萃取、多欄位 JSON 封裝與防禦性按鈕處理 │
│ • Day 7~8:跳脫單筆思維,邁向多筆資料流穩定批次抓取 (Part 1 & 2) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 階段二:規則引擎初探與邊界防護 (Day 9 - 13) │
│ • Day 9~10:多維度規則比對與分流引擎初版、配置外部化 (Config-Driven) │
│ • Day 11~13:單筆 Try-Catch 例外隔離、歷史資料不重複抓取 (水位線煞車)、CSV │
├─────────────────────────────────────────────────────────────────────────────┤
│ 階段三:視覺看板成形與維運自動化 (Day 14 - 19) │
│ • Day 14~16:動態 HTML 情報看板、Discord Webhook 即時推播、日期目錄自動歸檔 │
│ • Day 17~19:流程效能計時器 (碼錶機制)、Log 日誌追蹤、雙模態儀表板升級 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 階段四:加權演算法躍升與架構大解耦 (Day 20 - 25) │
│ • Day 20~21:多維度加權風險評分 (Tier 1~3)、瞬斷與超時的自動重試防護 │
│ • Day 22~23:告別巨大工作流!解耦 4 大子流程、別名模糊映射與負向排除詞 │
│ • Day 24~25:Chart.js 互動圖表、跨期趨勢對比 (自動計算競品成長率與研發激增) │
├─────────────────────────────────────────────────────────────────────────────┤
│ 階段五:微體驗調優與系統全鏈路驗收 (Day 26 - 30) │
│ • Day 26~27:一鍵深色模式 (Dark Mode)、高頻關鍵字熱度排行 (詞雲標籤) │
│ • Day 28~29:多欄位點擊排序 (Table Sort)、動態符合筆數、系統脆弱性實機驗證 │
│ • Day 30:30 天完賽總結與全鏈路系統復盤 │
└─────────────────────────────────────────────────────────────────────────────┘
在 Day 22 以前,流程隨著功能擴充越來越龐大,打開放慢、排錯眼花。在 Day 22 我們果斷將其重構成 4 大子流程:
1.Config_LoadRules.xaml:規則外部化(Config-Driven),業務變更無須重啟開發環境。 2.Scraping_ExtractPatents.xaml:專注網頁抓取與歷史水位線煞車,兼具重試機制。 3.Reporting_GenerateHtmlCsv.xaml:平鋪運算聚合資料、產生 CSV 與 Web 儀表板。 4.Notifier_SendDiscord.xaml:封裝 Webhook 推播,維持外部通訊獨立性。
各模組只透過明確的 In/Out Arguments 傳遞數據,大幅降低了模組間的耦合度。
防禦性設計」決定了 RPA 能否在生產環境活下去在自動化的世界裡,「例外才是常態」。我們在流程中佈下了多道防護網:
單筆隔離(Day 11)與重試(Day 21):遇到單筆異常不拖垮全域,自動退避重試。
水位線機制(Day 12):只抓「全新」專利,不重複消耗算力。
負向排除與別名清洗(Day 23):剔除「除外專利」,自動截除外商冗長國籍,讓數據乾淨入庫。
以產品思維打通「交付閉環」自動化系統的價值取決於受眾如何使用它:系統透過 Discord Webhook 提供工程團隊即時通報。 為主管打造了包含 Chart.js 圖表、競品研發激增預警、一鍵深色模式、高頻詞雲反向篩選 與 點擊排序 的現代化戰情室。讓原本生硬的專利清單,變成人人都能輕鬆探索的決策輔助工具。
感想
透過這次完整的實戰,我原本是想做的是利用UiPath來抓取網路連線申請單來優化工作,不過因為授權問題,所以我改用抓取專利網站的形式來完成,實作過程中,RPA不僅僅是一個模擬滑鼠鍵盤的日常點擊工具,只要結合模組化架構、防禦性程式設計與前端數據視覺化思維,它同樣能建構出強大、穩健且具備高商業價值的企業級系統。