Initial commit: HBR 文章爬蟲專案

- Scrapy 爬蟲框架,爬取 HBR 繁體中文文章
- Flask Web 應用程式,提供文章查詢介面
- SQL Server 資料庫整合
- 自動化排程與郵件通知功能

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-03 17:19:56 +08:00
commit f524713cb6
35 changed files with 6719 additions and 0 deletions

239
待釐清問題.md Normal file
View File

@@ -0,0 +1,239 @@
# HBR 爬蟲系統 - 待釐清問題清單
請以選擇題方式回答以下問題,以便完成系統開發。
---
## 一、資料庫相關問題
### 1. 資料庫類型
您希望使用哪種資料庫系統?
- [V ] A. MySQL / MariaDB
- [ ] B. PostgreSQL
- [ ] C. SQLite
- [ ] D. Microsoft SQL Server
- [ ] E. 其他請說明___________
### 2. 資料庫連線方式
您希望如何提供資料庫連線資訊?
- [ ] A. 直接在此文件中提供(主機、埠號、資料庫名稱、使用者、密碼)
- [V ] B. 透過環境變數設定
- [ ] C. 使用連線字串Connection String
- [ ] D. 使用設定檔config.ini 或 config.json
- [ ] E. 其他方式請說明___________
### 3. 資料庫位置
資料庫位於何處?
- [ ] A. 本地電腦localhost
- [V ] B. 區域網路內的伺服器
- [ ] C. 雲端服務AWS RDS、Azure SQL、Google Cloud SQL 等)
- [ ] D. 其他請說明___________
### 4. 資料庫權限
資料庫使用者權限設定?
- [ ] A. 僅有 SELECT 和 INSERT 權限(建議)
- [V ] B. 完整權限SELECT, INSERT, UPDATE, DELETE, CREATE TABLE
- [ ] C. 需要我協助建立資料表結構
- [ ] D. 資料表已存在,只需插入資料
### 5. 資料庫連線加密
是否需要使用 SSL/TLS 加密連線?
- [V ] A. 是,需要 SSL/TLS 加密
- [ ] B. 否,不需要加密
- [ ] C. 不確定,使用預設設定
---
## 二、資料儲存相關問題
### 6. 重複文章處理
當爬取到已存在的文章(相同 URL應如何處理
- [ ] A. 跳過,不更新資料庫
- [V ] B. 更新現有記錄(更新 crawled_at 時間戳)
- [V ] C. 更新現有記錄,並更新所有欄位(標題、內容等可能變更)
- [ ] D. 建立新記錄(允許重複)
### 7. 歷史資料保留
是否需要保留歷史爬取記錄?
- [ ] A. 是,保留所有歷史記錄(每次爬取都記錄)
- [ ] B. 否,只保留最新一次爬取的資料
- [V ] C. 保留最近 N 次爬取記錄請指定次數__30___
### 8. 資料清理
是否需要定期清理舊資料?
- [V ] A. 是,自動刪除超過 N 天的資料請指定天數_30____
- [ ] B. 否,保留所有資料
- [ ] C. 手動清理
### 9. CSV 檔案處理
CSV 檔案產生後,是否需要額外處理?
- [ ] A. 僅發送郵件,不額外處理
- [ ] B. 發送郵件後刪除 CSV 檔案
- [V ] C. 保留 CSV 檔案作為備份(保留最近 N 個檔案請指定_____
- [ ] D. 上傳至雲端儲存Google Drive、Dropbox、S3 等)
---
## 三、功能擴展相關問題
### 10. 資料查詢功能
是否需要提供資料查詢功能?
- [ ] A. 否,僅需爬取和儲存功能
- [ ] B. 是,需要簡單的查詢腳本(按日期、分類、標籤查詢)
- [V ] C. 是,需要 Web 介面查詢
- [ ] D. 是,需要 API 介面
### 11. 通知方式
除了郵件通知,是否需要其他通知方式?
- [V ] A. 僅需郵件通知
- [ ] B. 需要 Slack 通知
- [ ] C. 需要 Microsoft Teams 通知
- [ ] D. 需要 LINE 通知
- [ ] E. 需要其他方式請說明___________
### 12. 資料分析功能
是否需要資料分析功能?
- [ ] A. 否,僅需儲存原始資料
- [V ] B. 是,需要統計功能(文章數量、分類分布、作者統計等)
- [ ] C. 是,需要產生報表(週報、月報)
- [ ] D. 是,需要視覺化圖表
### 13. 增量爬取
是否需要支援增量爬取(僅爬取新文章)?
- [V ] A. 是,僅爬取新文章(依據 URL 或發布日期判斷)
- [ ] B. 否,每次完整爬取所有文章
- [ ] C. 是,但需要可設定爬取日期範圍
---
## 四、系統設定相關問題
### 14. 爬取頻率
除了每週一 08:00是否需要其他爬取時間
- [ ] A. 僅每週一 08:00
- [ ] B. 需要多個排程時間請說明____每天早上8:00_______
- [ ] C. 需要手動觸發功能
- [V ] D. 需要可設定的排程時間
### 15. 錯誤通知
當爬蟲執行失敗時,是否需要通知?
- [ ] A. 否,僅記錄日誌
- [V ] B. 是,發送錯誤通知郵件
- [ ] C. 是發送錯誤通知到其他平台請指定___________
### 16. 日誌記錄
日誌記錄的需求?
- [ ] A. 僅記錄到控制台
- [ ] B. 記錄到檔案請指定路徑_____
- [V ] C. 記錄到資料庫
- [ ] D. 記錄到日誌服務(如 ELK、Splunk
### 17. 效能設定
爬取時的效能設定偏好?
- [ ] A. 快速爬取(較短延遲,可能對伺服器造成較大負擔)
- [ ] B. 平衡模式(適中延遲,預設 1 秒)
- [V ] C. 保守模式(較長延遲,避免對伺服器造成負擔)
- [ ] D. 可設定延遲時間請指定秒數_____
---
## 五、資料格式相關問題
### 18. 日期格式
資料庫中日期欄位的格式偏好?
- [V ] A. DATETIME / TIMESTAMP資料庫原生格式
- [ ] B. VARCHAR字串格式如 '2024-12-22 08:00:00'
- [ ] C. DATE僅日期不含時間
- [ ] D. 其他請說明___________
### 19. 標籤儲存方式
標籤的儲存方式偏好?
- [ ] A. 正規化設計tags 表 + article_tags 關聯表,建議)
- [V ] B. 非正規化設計articles 表中以逗號分隔字串儲存)
- [ ] C. JSON 格式儲存(如資料庫支援)
### 20. 內容欄位長度
文章內容欄位的長度限制?
- [V ] A. TEXT 類型(無長度限制)
- [ ] B. VARCHAR(N)請指定最大長度_____
- [ ] C. MEDIUMTEXT / LONGTEXT依資料庫而定
---
## 六、其他問題
### 21. 專案部署環境
系統將部署在何處?
- [ ] A. 本地電腦Windows
- [ ] B. 本地電腦Linux/Mac
- [ ] C. GitHub Actions雲端
- [V ] D. 自有伺服器
- [ ] E. 雲端服務AWS、Azure、GCP 等)
### 22. 資料備份需求
是否需要自動備份功能?
- [V ] A. 否,手動備份即可
- [ ] B. 是,定期自動備份資料庫
- [ ] C. 是,備份資料庫和 CSV 檔案
- [ ] D. 是,備份到雲端儲存
### 23. 多語言支援
是否需要支援多語言?
- [ ] A. 否,僅支援繁體中文
- [V ] B. 是需要支援多語言請指定語言_繁體中文/英文/韓文_________
### 24. 資料匯出格式
除了 CSV是否需要其他匯出格式
- [ ] A. 僅需 CSV
- [ ] B. 需要 JSON 格式
- [V ] C. 需要 Excel 格式
- [ ] D. 需要多種格式請指定___________
---
## 請提供以下資訊
### 資料庫連線資訊(請填寫)
```
資料庫類型___________
主機位址Host___________
埠號Port___________
資料庫名稱Database___________
使用者名稱Username___________
密碼Password___________
連線字串如有___________
其他說明___________
```
---
**請將回答後的檔案回傳,或直接在文件中標記選項。**