| name | data-extraction |
| description | Designs web scraping / data extraction strategies: DOM analysis, multi-tier selectors with fallbacks, validation, transformation mapping, performance planning. Use when planning to scrape a site, extract structured data from HTML/DOM, or handle pagination / anti-scraping. Triggers: 資料提取, 抓取策略, web scraping, 選擇器設計, 爬蟲規劃. Do NOT use for implementing scraper code. |
Data Extraction Strategy
設計網頁資料提取(scraping)策略的步驟化流程。本 skill 提供與角色無關的通用抓取策略——任何代理人或主線程觸發時得到同一套流程,避免策略綁定特定人格。
定位:策略規劃,非程式碼實作。產出為提取策略設計文件(選擇器規劃 / 驗證規則 / 轉換映射),供實作代理人據以撰寫抓取程式碼。本 skill 不撰寫抓取程式碼。
通用性:以下流程為跨網站通用策略骨架,不綁定任何特定書城或網站。套用到具體目標時,將各步驟的「目標對象」替換為實際網站的 DOM、欄位、載入模式。
五步驟策略流程(核心 workflow)
依序執行五個步驟,每步先確立目標再展開規劃。前一步的產出是後一步的輸入。
步驟 1:網頁資料結構分析
目標:理解目標網站的資料結構、載入機制和動態內容模式。
- 分析目標網站的 DOM 結構和資料排列方式
- 識別所有可能的資料提取點和選擇器候選
- 判斷內容是否動態載入、是否需要 JavaScript 執行
- 規劃如何處理分頁、無限捲動等載入模式
- 評估反爬蟲機制並規劃應對策略
步驟 2:資料提取策略設計
目標:設計完整、可行且合乎使用條款的提取方案。
- 規劃提取優先級:先提取關鍵資料,再提取附加資料
- 設計多層次選擇器:主選擇器 + 備用選擇器 + 降級方案(DOM 結構變更時的容錯來源)
- 規劃提取頻率與速率限制(Rate Limiting)
- 定義請求頭、User-Agent 等設定
- 規劃錯誤恢復與重試機制
多層選擇器是容錯設計核心:目標網站 DOM 結構可能在不通知的情況下變更,單一選擇器易在改版後靜默失效。主 / 備用 / 降級三層讓單一選擇器失效時仍能命中。
步驟 3:資料驗證與清理流程設計
目標:確保提取資料的品質與完整性。
- 定義每個欄位的驗證規則:格式、長度、有效性
- 設計清理邏輯:移除空格、HTML 標籤、特殊字元
- 規劃異常值處理:異常值檢測 + 替代方案
- 定義缺失資料的處理策略
- 設計資料完整性檢查
單欄位失敗不丟整筆:區分必要欄位與可選欄位。可選欄位提取失敗時保留該筆其餘資料,僅必要欄位缺失才視為整筆失敗,避免容錯不足導致資料大量流失。
步驟 4:資料轉換規則定義
目標:將原始提取資料轉換為目標系統需要的格式。
- 定義型別轉換規則(字串 → 日期 / 數字等)
- 規劃標準化流程:統一格式、單位轉換
- 設計聚合邏輯:多源資料合併、去重
- 定義映射規則:源資料欄位 → 系統欄位
- 規劃結構化輸出格式
步驟 5:提取效能與可靠性規劃
目標:確保提取過程高效可靠。
- 評估提取複雜度與預期執行時間
- 規劃並行提取策略(若適用)
- 設計快取機制減少重複提取
- 規劃監控與日誌記錄
- 定義效能基準與最佳化目標
When to Read Which Reference
| 情境 | 讀此 reference |
|---|
| 需要產出正式的「資料提取策略設計文件」,要完整章節範本(選擇器優先級表 / 驗證規則表 / 轉換映射表 / 效能評估 / 風險評估) | references/strategy-document-template.md |
完成五步驟規劃後,依範本將結論整理為策略文件交付實作代理人。
Examples
| 輸入 | 動作 | 輸出 |
|---|
| 「規劃如何從某商品列表頁抓取品名、價格、庫存」 | 套用五步驟:分析 DOM → 設計三層選擇器 → 定義驗證(價格為數字、品名非空)→ 映射到系統欄位 → 評估分頁載入效能 | 依 references/strategy-document-template.md 產出策略文件 |
| 「目標網站改版後選擇器失效」 | 回到步驟 1 重新分析 DOM,步驟 2 補強備用 / 降級選擇器層級 | 更新後的選擇器優先級表 |
| 「資料量大,抓取很慢」 | 套用步驟 5:評估複雜度、規劃並行與快取、設定效能基準 | 效能與可靠性規劃章節 |
Troubleshooting
| 症狀 | 原因 | 解法 |
|---|
| 改版後整批提取失敗 | 只設計單一選擇器,無容錯層 | 步驟 2 補主 / 備用 / 降級三層選擇器 |
| 資料筆數遠少於預期 | 單一欄位失敗丟棄整筆 | 步驟 3 區分必要 / 可選欄位,可選失敗保留其餘 |
| 被目標站封鎖 | 未規劃速率限制 / 反爬蟲應對 | 步驟 1 評估反爬蟲機制,步驟 2 設定速率限制與請求頭 |
| 抓到的資料格式不一致 | 缺轉換與標準化規則 | 步驟 4 定義型別轉換與標準化流程 |