Ilias1988/Universal-News-Scraper

GitHub: Ilias1988/Universal-News-Scraper

一个基于Python的命令行新闻抓取器,通过Bing RSS实现自动主题发现和过滤,帮助用户高效聚合新闻数据。

Stars: 13 | Forks: 1

# 🌍 通用新闻抓取器 v4.1 [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![RSS](https://img.shields.io/badge/Powered%20by-Bing%20RSS-orange.svg)](https://www.bing.com/news) 一个功能强大的终端新闻聚合器,支持 **RSS 订阅**、**网络抓取**,并通过 Bing 新闻 RSS 进行 **主题自动发现**。 ![演示截图](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/dd958012df022611.png) ## ✨ 核心功能 | 功能 | 描述 | |---------|-------------| | 🕵️ **自动发现** | 无需知道 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, 信息聚合, 关键词过滤, 反封锁, 反编译, 噪音过滤, 数据分析工具, 数据导出, 新闻抓取, 新闻监控, 新闻聚合, 无后门, 日期过滤, 终端应用, 自动发现, 设置记忆, 逆向工具, 预设类别