Ilias1988/Universal-News-Scraper
GitHub: Ilias1988/Universal-News-Scraper
一个基于Python的命令行新闻抓取器,通过Bing RSS实现自动主题发现和过滤,帮助用户高效聚合新闻数据。
Stars: 13 | Forks: 1
# 🌍 通用新闻抓取器 v4.1
[](https://www.python.org/)
[](LICENSE)
[](https://www.bing.com/news)
一个功能强大的终端新闻聚合器,支持 **RSS 订阅**、**网络抓取**,并通过 Bing 新闻 RSS 进行 **主题自动发现**。

## ✨ 核心功能
| 功能 | 描述 |
|---------|-------------|
| 🕵️ **自动发现** | 无需知道 URL,即可查找关于任何主题(加密货币、体育、政治、AI)的新闻 |
| 📂 **预设类别** | 6 个内置类别,包含 30 多个国际新闻来源 |
| 🛡️ **防封锁** | 随机 User-Agent 轮换,以绕过限制 |
| 💾 **多格式导出** | 以 CSV、JSON、HTML 或所有格式保存结果 |
| 🎨 **HTML 报告** | 精美的暗色主题 HTML 报告,带有文章卡片 |
| 🔇 **噪声过滤器** | 自动过滤掉通用的 Bing 类别条目 |
| 🔗 **真实 URL 提取** | 从 Bing 重定向中提取真实文章 URL |
| 📅 **日期过滤** | 仅获取特定日期及之后的文章 |
| 🔑 **关键词过滤** | 按多个关键词筛选文章 |
| 🔄 **设置记忆** | 记住您上次的配置,以便快速重新运行 |
## 🆕 v4.1 新特性
- 🌐 **HTML 导出** - 精美的暗色主题 HTML 报告
- 🔇 **增强的噪声过滤器** - 过滤通用的 Bing 条目(热门新闻、娱乐等)
- 🔗 **真实 URL 提取** - 从 Bing 重定向中提取真实文章 URL
- 📰 **真实来源检测** - 显示实际的新闻来源,而不是“Bing”
- 📤 **4 种导出选项** - CSV、JSON、HTML 或所有格式
## 📂 预设类别
| 类别 | 来源 |
|----------|---------|
| 📰 **国际新闻** | BBC, CNN, Reuters, Al Jazeera, The Guardian, NPR |
| ⚽ **体育** | ESPN, BBC Sport, Sky Sports, Bleacher Report |
| 💻 **科技与科学** | TechCrunch, The Verge, Wired, Ars Technica, Space.com |
| 🔒 **网络安全** | The Hacker News, BleepingComputer, Krebs, Dark Reading |
| 💰 **商业与金融** | Bloomberg, CNBC, Financial Times, CoinDesk, CoinTelegraph |
| 🎬 **娱乐** | Variety, Hollywood Reporter, IGN, Kotaku |
## 🚀 快速开始
### 1. 克隆仓库
```
git clone https://github.com/Ilias1988/Universal-News-Scraper.git
cd Universal-News-Scraper
```
### 2. 创建虚拟环境(推荐)
```
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
```
### 3. 安装依赖
```
pip install -r requirements.txt
```
### 4. 运行抓取器
```
python scraper.py
```
## 📖 使用指南
### 主菜单
```
╭─────────────────────────────────────────╮
│ 🌍 UNIVERSAL NEWS SCRAPER v4.1 │
│ Powered by Python & Bing RSS │
╰─────────────────────────────────────────╯
┌──────────────── Main Menu ─────────────────┐
│ [1] 🔄 Use previous settings │
│ [2] 📝 Enter new settings manually │
│ [3] 🕵️ Auto-Discover & Scrape by Topic │ ← Recommended!
│ [4] 📋 Choose from preset sources │
│ [5] ❌ Exit │
└────────────────────────────────────────────┘
```
### 导出格式选项
```
📤 Export Format:
[1] CSV only
[2] JSON only
[3] HTML only ← Beautiful dark-themed report!
[4] All formats ← CSV + JSON + HTML
```
## 📤 输出格式
### CSV 输出 (`results.csv`)
```
title,url,date,description,source,matched_keywords
"AI Revolution in 2026...",https://techcrunch.com/...,2026-01-20,"Description...",Techcrunch,"AI, technology"
```
### JSON 输出 (`results.json`)
```
[
{
"title": "AI Revolution in 2026...",
"url": "https://techcrunch.com/...",
"date": "2026-01-20",
"description": "Description...",
"source": "Techcrunch",
"matched_keywords": "AI, technology"
}
]
```
### HTML 输出 (`results.html`)
精美的暗色主题报告,包含:
- 📊 显示文章数量的统计头部
- 📰 带有悬停效果的文章卡片
- 🏷️ 关键词徽章
- 🔗 可点击链接指向原始文章
- 📱 响应式设计
## 🛠️ 系统要求
```
requests>=2.31.0
beautifulsoup4>=4.12.0
feedparser>=6.0.0
fake-useragent>=1.4.0
htmldate>=1.6.0
rich>=13.7.0
lxml>=4.9.0
```
## 📁 项目结构
```
Universal-News-Scraper/
├── scraper.py # Main application
├── sources.json # Preset RSS sources (editable)
├── requirements.txt # Python dependencies
├── .scraper_config.json # Auto-saved settings (ignored by git)
├── .gitignore # Git ignore file
├── LICENSE # MIT License
└── README.md # This file
```
## 📌 示例
### 示例 1:查找比特币新闻
```
Select option: 3
Enter topic: Bitcoin
Keywords: (empty for all)
Export format: 4 (All)
→ Saves bitcoin_news.csv, bitcoin_news.json, bitcoin_news.html
```
### 示例 2:抓取网络安全来源
```
Select option: 4
Select category: 4 (Cybersecurity)
Select sources: A (ALL)
Keywords: ransomware
Export format: 3 (HTML)
→ Generates beautiful HTML report
```
## ⚠️ 免责声明
本工具仅用于**教育和研究目的**。
- 请始终尊重网站的服务条款
- 不要用过多请求使服务器过载
- 负责任地用于合法研究和新闻聚合
## 📄 许可证
MIT 许可证 - 随意使用和修改!
## 🔄 更新日志
### v4.1(当前版本)
- 🌐 添加了带暗色主题的 **HTML 导出**
- 🔇 为 Bing RSS 增强了 **噪声过滤器**
- 🔗 从 Bing 重定向中 **真实 URL 提取**
- 📰 **真实来源检测**(显示实际来源,而非 "Bing")
- 📤 4 种导出选项(CSV、JSON、HTML、全部)
### 版本4.0
- 🎨 全面的用户界面重新设计 - "通用新闻抓取器"
- 🌐 从 Google 搜索切换至 **Bing 新闻 RSS**
- 📂 6 个国际预设类别,包含 30 多个来源
### 版本3.0
- 添加了通过 Google 进行主题发现的功能
- 专注于网络安全的预设来源
**抓取愉快!🌍📰**
标签:Bing新闻, CSV格式, HTML报告, JSON格式, Python, Rich库, RSS聚合, URL提取, Web scraping, 信息聚合, 关键词过滤, 反封锁, 反编译, 噪音过滤, 数据分析工具, 数据导出, 新闻抓取, 新闻监控, 新闻聚合, 无后门, 日期过滤, 终端应用, 自动发现, 设置记忆, 逆向工具, 预设类别