news 2026/4/27 2:12:55

【技术教程】开源实时新闻聚合器NewsNow

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【技术教程】开源实时新闻聚合器NewsNow

NewsNow 开源项目详解

NewsNow 是一个由开发者ourongxing创建的开源实时新闻聚合器,旨在将分散在各个平台的热点信息统一到一个简洁优雅的界面中,帮助用户高效获取有价值的信息,摆脱传统资讯平台的算法绑架和信息茧房。

⚠️重要区分:请勿与英国商业新闻网站 newsnow.co.uk 混淆,二者完全无关。

访问与体验方式

1. GitHub 项目仓库(研究代码 / 自部署)

  • 地址:https://github.com/ourongxing/newsnow
  • 用途:查看源代码、详细文档、功能特性、部署指南。可 Fork 仓库进行二次开发或自建部署。

2. 官方公开演示站点(直接在线体验)

  • 地址:https://newsnow.busiyi.world
  • 用途:无需部署即可完整体验所有核心功能。

演示站点使用提示

  1. 初次访问默认显示“欢迎”和“实时”栏目。
  2. 点击顶部“更多”按钮。
  3. 在弹窗中为感兴趣的新闻源(如知乎、微博、GitHub 等)点星星进行关注。
  4. 返回首页,切换到“关注”栏目,即可查看个性化聚合新闻流。

核心理念与价值

NewsNow 主打用户主权反算法绑架

  • 在一个界面追踪全网热点。
  • 通过自定义关注,完全由用户决定信息来源和呈现顺序。
  • 解决信息过载与碎片化问题,让用户主动获取信息而非被动接受推荐。

技术架构与设计模式

技术栈概览

  • 前端:React 19 + TypeScript + Vite 6
  • 后端:Nitro(Nuxt.js 服务端框架)
  • 状态管理:Jotai(轻量级)
  • 样式与交互:UnoCSS(原子化 CSS)、Framer Motion(动画)

整体架构图

前端展示层

API服务层

数据处理与存储层

数据获取层

多种新闻源API

智能抓取调度器

HTML页面爬取

数据清洗与解析

是否启用缓存?

缓存系统
SQLite/MySQL/D1

实时数据

Nitro API Server

React前端应用

卡片式布局UI

用户交互
(拖拽/收藏/刷新)

核心设计模式

  • 适配器模式server/sources/目录中每个新闻源独立实现适配器,将不同平台的数据结构统一为内部NewsItem格式,便于扩展新源。
  • 策略模式:智能抓取调度器根据配置的intervaltype(hottest/latest)等动态调整抓取策略。
  • 观察者模式:前端通过自定义 Hooks 监听数据变化,实现刷新、缓存过期时的自动更新。

核心功能

  • 多源聚合:默认支持 40+ 新闻源,覆盖科技、社交、财经、新闻等领域。
  • 优雅交互:卡片式布局,支持拖拽排序、深浅色模式切换、流畅动画。
  • 智能数据管理:默认 30 分钟缓存,登录用户可强制刷新;内置智能重试机制避免 IP 封禁。
  • 个性化与同步:支持 GitHub OAuth 登录,跨设备同步关注列表和阅读偏好。

快速部署

推荐使用 Docker,最简方式:

# docker-compose.ymlservices:newsnow:image:ghcr.io/ourongxing/newsnow:latestcontainer_name:newsnowrestart:alwaysports:-'4444:4444'

执行docker-compose up -d后,访问http://localhost:4444即可。

远程访问建议:配合内网穿透工具(如 cpolar)可获得公网地址,实现随时随地访问。

扩展性:自定义新闻源

NewsNow 最强大的特性之一是极易添加自定义新闻源。

适用场景

  • 学术领域追踪论文网站
  • 开发者监控小众技术论坛
  • 市场人员聚合竞品动态
  • 个人兴趣整合博客、漫画更新等

示例:添加 GitHub Trending

  1. shared/sources.json中添加配置:
{"github-trending":{"name":"GitHub Trending","type":"hottest","column":"tech","home":"https://github.com/trending","color":"gray","interval":600000,"title":"今日热门仓库"}}
  1. server/sources/创建github.ts
import*ascheeriofrom'cheerio';import{myFetch}from'../utils/fetch';exportdefaultdefineSource({'github-trending':async()=>{consturl='https://github.com/trending';consthtml=awaitmyFetch(url);const$=cheerio.load(html);constitems=[];$('article.Box-row').each((_,element)=>{consttitle=$(element).find('h2 a').text().trim();constrelativeUrl=$(element).find('h2 a').attr('href');constdescription=$(element).find('p.pr-4').text().trim();if(title&&relativeUrl){items.push({id:relativeUrl,title:title.replace(/\s+/g,' '),url:`https://github.com${relativeUrl}`,extra:{description:description||''}});}});returnitems.slice(0,10);}});
  1. 运行pnpm dev测试,确认新源在界面正常显示。

生态与变体

MCP Newsnow Server

  • 一个基于 Model Context Protocol 的新闻聚合服务器。
  • 用途:让 AI 助手(如 Claude Desktop)通过自然语言直接查询实时新闻(如“今天知乎和微博热搜”)。
  • 安装:pip install mcp-newsnow,然后在 AI 助手配置中添加即可。

总结与建议

  • 想直接体验→ 访问官方演示站 https://newsnow.busiyi.world
  • 想研究代码或自部署→ 访问 GitHub 仓库 https://github.com/ourongxing/newsnow

NewsNow 既是高效的个人资讯工具,又是学习现代全栈开发、设计模式和可扩展架构的优秀开源样本。如需部署细节、特定新闻源抓取技巧或性能优化指导,可进一步提问。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 3:03:51

HeyGem v1.0版本发布:数字人视频生成进入平民化时代

HeyGem v1.0:数字人视频生成的平民化革命 在短视频内容爆炸式增长的今天,企业、教育机构甚至个人创作者都面临一个共同难题:如何以极低的成本和时间投入,持续产出高质量的“真人出镜”类视频?传统的拍摄剪辑模式不仅耗…

作者头像 李华
网站建设 2026/4/25 22:48:02

如何上传音频文件到HeyGem系统?支持WAV、MP3、AAC等多种格式

如何上传音频文件到HeyGem系统?支持WAV、MP3、AAC等多种格式 在AI驱动内容生成日益普及的今天,数字人视频已经不再是影视特效团队的专属工具。越来越多的企业和个人开始使用自动化系统来制作宣传视频、课程讲解或客服播报。这其中,语音驱动口…

作者头像 李华
网站建设 2026/4/25 15:49:54

AVI老式格式仍支持:HeyGem兼顾传统视频素材需求

AVI老式格式仍支持:HeyGem兼顾传统视频素材需求 在AI数字人技术席卷内容创作领域的今天,越来越多的企业和机构开始尝试用虚拟主播替代真人出镜。无论是线上课程、企业宣传,还是智能客服播报,AI驱动的口型同步视频正成为高效生产的…

作者头像 李华
网站建设 2026/4/18 16:56:51

【.NET高手私藏干货】:C# 12顶级语句部署性能提升80%的秘密

第一章:C# 12顶级语句概述C# 12 引入了对顶级语句的进一步优化,使开发者能够以更简洁的方式编写控制台应用程序和脚本化逻辑。顶级语句允许将程序入口点(Main 方法)直接写在文件中,无需显式定义类和静态方法&#xff0…

作者头像 李华
网站建设 2026/4/22 8:15:56

Whisper语音识别辅助HeyGem:自动生成字幕的可能性

Whisper语音识别辅助HeyGem:自动生成字幕的可能性 在短视频、在线教育和企业宣传内容爆炸式增长的今天,一个现实问题摆在内容创作者面前:如何以更低的成本、更高的效率生产出既“听得清”又“看得懂”的数字人播报视频?静音播放场…

作者头像 李华