Files
ewoooc/docs/guides/promo_event_crawler_guide.md
OoO af260c4a01
All checks were successful
CD Pipeline / deploy (push) Successful in 1m12s
feat: 新增三個促銷活動爬蟲支援(母親節、520情人節、勞動節)
- 新增通用促銷活動爬蟲函式 run_promo_event_task()
- 更新 crawler_config_loader.py 新增三個活動配置
- 更新 run_scheduler.py 動態註冊促銷活動爬蟲
- 新增 API 端點 /api/run_promo_event_task
- 新增三個前端儀表板路由(/edm/mothers_day, /edm/valentine_520, /edm/labor_day)
- 更新所有儀表板頁籤列表
- 新增配置檔案 services/data/crawler_config.json
- 新增使用文件 docs/guides/promo_event_crawler_guide.md
- 更新 agent_actions.py 允許重試列表
2026-04-28 13:57:44 +08:00

4.6 KiB
Raw Permalink Blame History

促銷活動爬蟲配置指南

概述

本系統支援多種促銷活動的爬蟲監控包括母親節、520情人節、勞動節等季節性活動。爬蟲系統採用通用架構可輕鬆擴展支援新的活動類型。

支援的活動類型

活動類型 page_type 預設活動名稱 配置鍵值
母親節 mothers_day 母親節超值限時購 mothers_day_2026
520情人節 valentine_520 520情人節限定購物 valentine_520_2026
勞動節 labor_day 勞動節購物優惠 labor_day_2026
1.1狂歡購物節 festival 1.1狂歡購物節 festival_11

配置步驟

1. 編輯配置文件

編輯 services/data/crawler_config.json

{
  "crawlers": {
    "mothers_day_2026": {
      "enabled": true,
      "schedule_hours": 4,
      "lpn_code": "YOUR_LPN_CODE_HERE",
      "activity_name": "母親節超值限時購",
      "page_type": "mothers_day",
      "name": "2026 母親節促銷爬蟲"
    }
  }
}

重要參數說明:

  • enabled: 設為 true 啟用爬蟲
  • schedule_hours: 執行頻率(小時)
  • lpn_code: MOMO 活動頁面的 LPN 代碼(必填)
  • activity_name: 活動名稱(用於通知和日誌)
  • page_type: 資料庫區分標識(不可重複)

2. 取得 LPN 代碼

LPN 代碼是 MOMO 活動頁面的唯一識別碼,格式如下:

https://www.momoshop.com.tw/edm/cmmedm.jsp?lpn=O1K5FBOqsvN
                                                    ^^^^^^^^^^^^
                                                    這就是 LPN 代碼

3. 重啟排程服務

修改配置後,需重啟 momo-scheduler 容器使配置生效:

ssh wooo@192.168.0.110 "ssh ollama@192.168.0.188 \"\
  cd /home/ollama/momo-pro && docker compose restart momo-scheduler\""

手動觸發爬蟲

透過 Web API

curl -X POST http://localhost:5000/api/run_promo_event_task \
  -H "Content-Type: application/json" \
  -d '{
    "page_type": "mothers_day",
    "lpn_code": "O1K5FBOqsvN",
    "activity_name": "母親節超值限時購"
  }'

透過 Python

import requests

response = requests.post(
    'http://localhost:5000/api/run_promo_event_task',
    json={
        'page_type': 'mothers_day',
        'lpn_code': 'O1K5FBOqsvN',
        'activity_name': '母親節超值限時購'
    }
)
print(response.json())

資料庫結構

所有促銷活動商品資料儲存在 promo_products 表,透過 page_type 欄位區分:

SELECT * FROM promo_products WHERE page_type = 'mothers_day';

爬蟲結構分析

根據市場情報,各活動頁面結構如下:

母親節5月第2週

  • 活動名稱: 《愛在五月》母親節超值限時購
  • 主要商品: OLAY 歐蕾系列、全酵肌泌賦活乳、時尚服飾
  • 活動時間: 5月第2週

520情人節5/20-21

  • 活動名稱: 《你我在一起》情人節限定購物
  • 主要商品: OLAY 歐蕾系列、OZIO 歐姬兒蜂王乳凝露EX
  • 活動時間: 5月20日-21日

勞動節5/1-3

  • 活動名稱: 《勞動者福利》勞動節購物優惠
  • 主要商品: OLAY 歐蕾系列、春季保養相關商品
  • 活動時間: 5月1日-3日

爬蟲功能

系統會自動:

  1. 抓取活動頁面所有商品區塊
  2. 解析商品名稱、價格、圖片
  3. 偵測價格變動(漲價/跌價)
  4. 偵測新上架商品
  5. 偵測下架商品
  6. 發送 Telegram/Line 通知(附截圖)

故障排除

爬蟲未啟動

檢查配置文件中的 enabled 是否為 true,且 lpn_code 已填寫。

未抓取到商品

  1. 檢查 LPN 代碼是否正確
  2. 檢查活動頁面是否已上線
  3. 查看 logs/system.log 中的錯誤訊息
  4. 檢查 logs/debug_htmls/ 中的偵錯截圖

排程未執行

確認 momo-scheduler 容器運行狀態:

ssh wooo@192.168.0.110 "ssh ollama@192.168.0.188 \"\
  docker ps --format '{{.Names}} | {{.Status}}' | grep momo-scheduler\""

新增活動類型

如需新增其他活動類型:

  1. services/data/crawler_config.json 新增配置
  2. run_scheduler.pypromo_event_configs 字典中新增對應
  3. 重啟排程服務

範例:

{
  "mid_autumn_2026": {
    "enabled": false,
    "schedule_hours": 4,
    "lpn_code": "",
    "activity_name": "中秋節限定優惠",
    "page_type": "mid_autumn",
    "name": "2026 中秋節促銷爬蟲"
  }
}
promo_event_configs = {
    # ... 現有配置
    'mid_autumn_2026': {'lpn': '', 'page_type': 'mid_autumn', 'name': '中秋節限定優惠'}
}