# 公版商品資料表-標準格式說明
## 文件目的
本文件旨在指導大語言模型(LLM)理解從手機銷售網站爬取商品資料的目標,並生成符合標準格式的「公版商品資料表」。公版商品資料表是一個統一結構的 CSV 檔案,包含手機商品的關鍵資訊,適用於多個網站(如 SOGI 手機王、地標網通、傑昇通信等)。LLM 應分析網站的 HTML 結構,提取手機商品資料,整理成以下定義的欄位,並輸出為指定格式的 CSV 檔案。此標準格式確保資料一致性,便於後續分析與應用。
## 文件結構
- **檔案名稱**:公版商品資料表(例如 `parsed_product_data_sogi.csv`)
- **編碼**:UTF-8-SIG(確保中文在 Excel 等工具中正確顯示)
- **分隔符**:逗號(`,`)
- **標題行**:包含以下欄位名稱(按順序):
- 廠牌
- 型號
- 規格
- 顏色
- aName
- 最新參考價
## 欄位描述
每個手機商品的資料按以下欄位組織,每行對應某手機的某種顏色變體。爬蟲程式應從網站提取資料,並按照以下定義處理:
| 欄位名稱 | 描述 | 資料來源與處理方式 | 示例值 |
| --- | --- | --- | --- |
| 廠牌 | 手機的品牌名稱,例如 Apple、SAMSUNG 等。 | 從商品名稱或標籤提取,通常為名稱的第一部分。若名稱格式為「品牌 型號 規格」(如「Apple iPhone 16 Pro Max 256GB」),分割後取第一個值。若無法分割,設為完整名稱。 | `Apple`, `SAMSUNG` |
| 型號 | 手機的型號名稱,描述產品系列和版本,不含儲存容量或顏色。 | 從商品名稱提取,分割後取中間段(第二個值到倒數第二個值),以空白合併。若無中間段,取第二個值。若無法分割,設為「未知型號」。 | `iPhone 16 Pro Max`, `Galaxy S24 Ultra` |
| 規格 | 手機的儲存容量規格,例如 256GB、1TB 等。 | 從商品名稱提取,分割後取最後一個值。若無法分割,設為「未知規格」。 | `256GB`, `1TB` |
| 顏色 | 手機的顏色變體,例如粉紅、黑鈦金屬等。 | 從商品頁面的顏色選項提取,通常位於特定區塊(如 SOGI 的 `<div class="text-center section-color">` 內的 `<a>` 標籤,跳過「全部」選項)。若無顏色資訊,設為「無顏色資訊」。 | `黑鈦金屬`, `鈦灰`, `粉紅` |
| aName | 手機的完整描述名稱,結合型號、規格和顏色,用空白分隔。 | 由程式生成,格式為 `型號 + " " + 規格 + " " + 顏色`。若任一欄位缺失,保持空白分隔格式。 | `iPhone 16 Pro Max 256GB 黑鈦金屬` |
| 最新參考價 | 手機的最新參考價格(通常為門市最低價或空機價),以純數字表示,無貨幣符號或逗號。 | 從商品頁面或列表頁的價格標籤提取,移除貨幣符號(如 `$`)和分隔符(如 `,`)。若價格缺失,設為「未知價格」。 | `40290`, `29900` |
## 資料特性
- **每行唯一性**:每個手機商品可能有多種顏色,每種顏色生成一筆獨立記錄。例如,Apple iPhone 16 Pro Max 256GB 有四種顏色(黑鈦金屬、白鈦金屬等),會生成四行,僅 `顏色` 和 `aName` 不同。
- **篩選條件**:爬蟲應專注於手機類商品(例如 SOGI 中 `href` 包含 "cellphone" 的商品),優先提取新品空機價格(非二手價)。
- **異常處理**:
- 若商品名稱格式不標準(例如無規格),設為預設值(「未知型號」、「未知規格」)。
- 若價格無效或缺失,記錄為「未知價格」。
- 若無顏色資訊或顏色區塊不存在,記錄為「無顏色資訊」或「無顏色區塊」。
- 若頁面無法訪問,記錄錯誤訊息(例如「無法訪問頁面: 404」)並繼續處理其他商品。
- **資料來源**:
- **品牌清單**:從網站入口頁面提取品牌連結,通常為導航欄中的品牌標籤(例如 SOGI 的 `<a class="nav-link" event-page-function="Header">`,`href` 包含 "brands")。
- **商品清單**:從品牌頁面的商品列表提取(例如 SOGI 的 `<div class="mix-item">`)。
- **商品詳情**:從商品頁面提取顏色等附加資訊。
## 示例資料
以下是公版商品資料表的示例內容(僅展示部分):
```
廠牌,型號,規格,顏色,aName,最新參考價
Apple,iPhone 16 Pro Max,256GB,黑鈦金屬,iPhone 16 Pro Max 256GB 黑鈦金屬,40290
Apple,iPhone 16 Pro Max,256GB,白鈦金屬,iPhone 16 Pro Max 256GB 白鈦金屬,40290
Apple,iPhone 16,128GB,超瓷黑,iPhone 16 128GB 超瓷黑,29900
Apple,iPhone 16,128GB,超瓷粉紅,iPhone 16 128GB 超瓷粉紅,29900
SAMSUNG,Galaxy S24 Ultra,256GB,鈦灰,Galaxy S24 Ultra 256GB 鈦灰,39900
SAMSUNG,Galaxy S24 Ultra,256GB,鈦黑,Galaxy S24 Ultra 256GB 鈦黑,39900
```
## LLM 指導建議
為了讓 LLM 成功生成符合公版商品資料表的爬蟲程式,應提供以下指引:
1. **網站結構分析**:
- LLM 應解析網站的 HTML,識別品牌清單、商品列表、和商品詳情頁的結構。
- 例如,SOGI 的品牌連結在 `<a class="nav-link" event-page-function="Header">`,商品在 `<div class="mix-item">`,顏色在 `<div class="text-center section-color">`。
2. **資料提取邏輯**:
- **廠牌/型號/規格**:從商品名稱提取,通常以空白分割(例如「Apple iPhone 16 Pro Max 256GB」)。
- **顏色**:尋找顏色選項區塊,提取選項名稱,排除無關標籤(如「全部」)。
- **價格**:提取價格標籤,移除貨幣符號和分隔符,轉為純數字。
- **aName**:動態生成,確保格式一致。
3. **異常處理**:
- 設計健壯的錯誤處理,應對頁面缺失、標籤不存在、或網路錯誤。
- 提供預設值(「未知型號」、「無顏色資訊」等)確保資料完整。
4. **輸出格式**:
- 生成 CSV 檔案,標題行與欄位順序必須與本文件一致。
- 使用 UTF-8-SIG 編碼,確保跨平台兼容性。
5. **爬蟲效率**:
- 建議添加延遲(例如 0.5-1 秒)或隨機延遲,避免被網站封鎖。
- 可考慮並行處理,但需確保資料順序和穩定性。
## 注意事項
- **標準化**:LLM 應確保不同網站的資料符合此格式,即使網站結構不同(例如 PChome 可能將規格放在選項欄,價格含折扣)。
- **資料驗證**:生成後的 CSV 應檢查欄位完整性,避免空值或格式錯誤。
- **擴展性**:未來可添加欄位(如「庫存狀態」、「折扣價」),但需保持現有欄位不變。
- **網站適配**:不同網站可能有獨特標籤或分頁機制,LLM 需動態適應,並記錄無法提取的情況。
此文件作為標準參考,幫助 LLM 生成高效、穩定的爬蟲程式,產出統一的公版商品資料表,適用於各種手機銷售網站。