一個專門針對 TechNews.tw 網站的科技新聞分析系統,具備自動爬蟲、內容分析和股票公司識別功能。
- 🚀 智能爬蟲: 自動解析 TechNews.tw 網站地圖,按日期範圍抓取文章
- 🧹 數據清理: 自動處理和標準化爬取的新聞內容
- 🔍 文本分析: 使用 Jieba 中文分詞識別文章中的公司名稱和市場趋勢
- 🖥️ 圖形界面: PyQt6 構建的現代化深色主題界面
- 📊 進度追蹤: 實時顯示爬蟲和分析進度
- 🎯 日期篩選: 靈活的日期範圍選擇功能
- Python 3.7+
- Windows/Linux/macOS
- 克隆專案到本地
git clone <repository-url>
cd TechNews-AnalysisSystem
- 安裝相依套件
pip install -r requirements.txt
python src/main.py
- 選擇日期範圍: 使用日曆選擇器設定分析的起始和結束日期
- 開始分析: 點擊「開始分析」按鈕執行完整的爬蟲和分析流程
- 查看進度: 透過進度條和即時日誌監控處理狀態
- 檢視結果: 在結果區域查看分析完成後的內容
- 跳過爬蟲: 勾選此選項可略過網頁爬取,直接使用現有資料進行分析
- 中止分析: 點擊「停止分析」可隨時終止正在執行的任務
src/
├── main.py # 主程式 - PyQt6 GUI 界面
├── scraping/
│ └── scraper.py # 網頁爬蟲模組
├── utils/
│ ├── ContentAnalysis.py # 中文文本分析
│ ├── DataCleaner.py # 數據清理工具
│ └── stock_dict.txt # 股票公司詞典
└── database/ # 資料庫模組 (預留)
- 採用 Jieba 分詞引擎
- 支援繁體中文詞典
- 自定義股票公司詞庫識別
- 智能提取趋勢關鍵詞
- GUI 主執行緒保持響應性
- 背景執行緒處理耗時的爬蟲和分析任務
- 即時進度回調更新
- 智能解析 XML 網站地圖
- 按月份篩選目標文章
- 批次處理避免伺服器壓力
- 自動重試和錯誤處理
套件名稱 | 版本 | 用途 |
---|---|---|
PyQt6 | 6.7.0 | GUI 界面框架 |
beautifulsoup4 | 4.12.3 | HTML 解析 |
pandas | 2.2.2 | 數據處理 |
jieba | 0.42.1 | 中文分詞 |
requests | 2.32.3 | HTTP 請求 |
tqdm | 4.66.4 | 進度條顯示 |
編輯 src/utils/stock_dict.txt
新增股票公司名稱:
台積電 stock
聯發科 stock
鴻海 stock
在 src/utils/ContentAnalysis.py
中調整關鍵詞提取邏輯:
def extract_companies(text):
# 自定義公司名稱提取邏輯
pass
def extract_keywords(text):
# 自定義趨勢關鍵詞提取邏輯
pass
- 請遵守 TechNews.tw 網站的使用條款和爬蟲禮儀
- 系統會自動在請求間增加延遲以避免對伺服器造成壓力
- 建議在網路連線穩定的環境下使用
- 分析大量文章時請確保有足夠的磁碟空間
本專案採用 MIT 授權條款 - 詳見 LICENSE 文件
歡迎提交 Issue 和 Pull Request 來改善此專案。在提交程式碼前,請確保:
- 程式碼符合 PEP 8 標準
- 新增適當的中文註解
- 測試新功能的穩定性
如有問題或建議,請透過 GitHub Issues 回報。