DonaldFang 方士碩 5b4041afd5 Add .env.example with environment configuration template
提供環境變數設定範本,包含:
- 資料庫連線設定
- Gmail SMTP 郵件設定
- Flask 應用程式設定

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 18:40:49 +08:00
2025-12-03 17:19:56 +08:00

HBR Taiwan 文章爬蟲系統

這是一個自動化的 HBR Taiwan 文章爬蟲系統,每週一自動爬取最新文章並透過 Gmail 發送 CSV 檔案。

功能特色

  • 🕷️ 自動爬取 HBR Taiwan 網站文章
  • 📧 每週一自動發送文章清單到指定信箱
  • 🔒 支援付費文章識別(不爬取內容)
  • 📊 輸出結構化 CSV 格式
  • 使用 GitHub Actions 免維護伺服器

專案結構

├── hbr_crawler/           # Scrapy 爬蟲專案
│   ├── hbr_crawler/
│   │   ├── spiders/
│   │   │   └── hbr.py     # HBR 爬蟲主程式
│   │   ├── items.py       # 資料結構定義
│   │   ├── pipelines.py   # CSV 輸出管道
│   │   └── settings.py    # 爬蟲設定
│   └── scrapy.cfg
├── .github/workflows/
│   └── weekly.yml         # GitHub Actions 排程
├── send_mail.py           # 郵件發送腳本
├── requirements.txt       # Python 依賴
└── README.md

快速開始

1. 安裝依賴

pip install -r requirements.txt

2. 手動測試爬蟲

cd hbr_crawler
scrapy crawl hbr

這會產生 hbr_articles.csv 檔案在專案根目錄。

3. 設定 Gmail 環境變數

export GMAIL_USERNAME='yourname@gmail.com'
export GMAIL_APP_PASSWORD='your-16-digit-app-password'
export MAIL_TO='kaeruzak@gmail.com'

4. 測試郵件發送

python send_mail.py hbr_articles.csv

Gmail App Password 設定

  1. 前往 Google 帳戶設定
  2. 安全性 → 兩步驟驗證(需先啟用)
  3. 應用程式密碼 → 選擇「郵件」
  4. 複製產生的 16 碼密碼

GitHub Actions 自動化

設定 Secrets

在 GitHub 專案的 Settings → Secrets and variables → Actions 新增:

  • GMAIL_USERNAME: 您的 Gmail 地址
  • GMAIL_APP_PASSWORD: 16 碼 App Password
  • MAIL_TO: kaeruzak@gmail.com

排程設定

系統預設每週一 08:00 (Asia/Taipei) 自動執行,對應 GitHub Actions 的 cron 設定:

schedule:
  - cron: "0 0 * * 1"   # 週一 00:00 UTC ≈ 台北 08:00

輸出格式

CSV 檔案包含以下欄位:

  • title: 文章標題
  • url: 文章連結
  • author: 作者
  • publish_date: 發布日期
  • summary: 文章摘要
  • is_paywalled: 是否為付費文章 (1/0)
  • category: 文章分類
  • tags: 標籤(逗號分隔)
  • content: 文章內容(僅非付費文章)

注意事項

  • 系統遵守 robots.txt 規則
  • 付費文章僅標記為 is_paywalled=1,不爬取內容
  • 若網站改版,可能需要調整 hbr.py 中的 CSS 選擇器
  • 空結果週會跳過寄信(可修改為發送通知)

故障排除

爬蟲無法找到文章

檢查 hbr_crawler/hbr_crawler/spiders/hbr.py 中的 CSS 選擇器是否與網站結構匹配。

郵件發送失敗

  1. 確認 Gmail App Password 正確
  2. 檢查環境變數設定
  3. 確認網路連線正常

GitHub Actions 失敗

  1. 檢查 Secrets 設定
  2. 查看 Actions 執行日誌
  3. 確認 Python 版本相容性

授權

此專案僅供學習和研究使用,請遵守 HBR Taiwan 網站的使用條款。

Description
HBR �峹���αM��
Readme 115 KiB
Languages
Python 64.5%
JavaScript 20.4%
HTML 8.7%
CSS 6.4%