Some checks failed
CD Pipeline / deploy (push) Failing after 59s
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml) - 部署模式: rsync Python 檔案至 188 → docker restart (volume mount) - Dockerfile/requirements 變動時自動重建 Docker image - 部署通知: Telegram (開始/成功/失敗) - 健康檢查: https://mo.wooo.work/health (最多 5 次重試) - 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
74 lines
1.7 KiB
Python
74 lines
1.7 KiB
Python
# cSpell:ignore momo
|
|
"""
|
|
一次性執行爬蟲腳本
|
|
用於手動觸發商品資料和圖片的更新
|
|
"""
|
|
import os
|
|
import sys
|
|
import logging
|
|
|
|
# 設定路徑
|
|
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
sys.path.insert(0, BASE_DIR)
|
|
|
|
# 設定日誌
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format='%(asctime)s [%(levelname)s] %(message)s',
|
|
handlers=[
|
|
logging.StreamHandler(sys.stdout)
|
|
]
|
|
)
|
|
|
|
from scheduler import run_momo_task, run_edm_task, run_festival_task
|
|
|
|
def main():
|
|
"""執行所有爬蟲任務"""
|
|
print("=" * 80)
|
|
print("🚀 開始執行完整爬蟲任務")
|
|
print("=" * 80)
|
|
print()
|
|
|
|
try:
|
|
# 1. 一般商品爬蟲
|
|
print("📦 [1/3] 執行一般商品爬蟲...")
|
|
print("-" * 80)
|
|
run_momo_task()
|
|
print()
|
|
print("✅ 一般商品爬蟲完成")
|
|
print()
|
|
|
|
# 2. EDM 促銷商品爬蟲
|
|
print("🎁 [2/3] 執行 EDM 促銷商品爬蟲...")
|
|
print("-" * 80)
|
|
run_edm_task()
|
|
print()
|
|
print("✅ EDM 促銷商品爬蟲完成")
|
|
print()
|
|
|
|
# 3. Festival 購物節商品爬蟲
|
|
print("🎉 [3/3] 執行購物節商品爬蟲...")
|
|
print("-" * 80)
|
|
run_festival_task()
|
|
print()
|
|
print("✅ 購物節商品爬蟲完成")
|
|
print()
|
|
|
|
print("=" * 80)
|
|
print("🎉 所有爬蟲任務執行完成!")
|
|
print("=" * 80)
|
|
|
|
except KeyboardInterrupt:
|
|
print("\n\n⚠️ 使用者中斷執行")
|
|
print("=" * 80)
|
|
sys.exit(1)
|
|
except Exception as e:
|
|
print(f"\n\n❌ 執行過程發生錯誤: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
print("=" * 80)
|
|
sys.exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|