程序聚合 软件案例 全端智能新闻聚合与网页快照归档平台

全端智能新闻聚合与网页快照归档平台

2026-03-09 21:09:51
行业:人工智能、生活服务
载体:鸿蒙应用、爬虫/脚本
技术:Spring Boot、Scrapy

业务和功能介绍

1、立项背景和目标:
在信息碎片化时代,用户面临新闻多端分散、优质内容易被404(链接失效)等痛点。本项目旨在打造一个跨平台(PC网页、iOS、HarmonyOS)的智能新闻聚合系统。核心目标是通过分布式爬虫实时抓取全网热点资讯,并利用无头浏览器技术对高价值新闻生成永久DOM快照和长图存档,确保信息资产的永久可访问性。
2、核心功能模块介绍:
分布式爬虫与清洗引擎: 针对不同新闻源定制抓取策略,利用自然语言处理(NLP)进行正文提取、去重和自动打标签。
网页快照与归档中台: 监听新闻入库事件,异步调度无头浏览器渲染目标页面,生成离线HTML快照和PDF/长图,存储至对象存储(OSS)。
多端统一分发API: 为HarmonyOS、iOS和PC Web提供统一的RESTful接口,支持基于ElasticSearch的亿级数据毫秒级全文检索。
智能推荐与订阅机制: 根据用户浏览画像,实现千人千面的新闻流推荐。
3、业务流程、功能路径描述:
数据生产链路: 调度中心下发任务 -> 爬虫节点抓取HTML -> 清洗服务提取标题/正文/时间 -> 触发快照异步任务 -> 存入MySQL并同步至ES索引。
C端用户访问链路(以鸿蒙端为例): 用户打开HarmonyOS App -> 发起首页Feed流请求 -> 后端网关鉴权 -> 推荐系统计算流数据 -> 返回资讯列表 -> 用户点击新闻 -> 优先加载本地/OSS的网页快照,实现秒开体验。

项目实现

1、整体架构和设计思路:
项目采用前后端分离与微服务化架构思想。前端采用 Vue3 构建 PC 管理后台与 Web 端,移动端使用 ArkTS 进行鸿蒙原生开发。后端核心业务基于 Spring Boot 构建,数据持久层采用 MySQL 分库分表,利用 Redis 缓存热点新闻与用户会话。全文检索与多条件聚合依赖 ElasticSearch 支撑。分布式爬虫使用 Python Scrapy 框架集群部署,并通过 RabbitMQ/Kafka 与 Java 主服务进行解耦与消息通信。
2、负责模块和结果:
我负责整个后端的架构设计、快照生成引擎以及鸿蒙端API接口的开发。
结果量化: 通过优化爬虫连接池与异步IO,使单节点日均新闻抓取量稳定在 20万+ 条,成功率达 98.5%。在快照生成模块,引入了多线程无头浏览器对象池(Browser Pool),将单张网页快照的生成时间从平均 4.5秒 压缩至 1.2秒,系统整体 QPS 提升了 300%。
3、遇到的难点、坑,和解决方案:
难点与坑: 在高并发抓取并生成快照时,Puppeteer (无头浏览器) 频繁发生内存泄漏(Memory Leak),导致服务器 OOM 宕机;同时部分动态新闻网站(SPA单页应用)存在复杂的反爬与异步加载机制,导致快照截取为空白。
解决方案: 1) 重构快照引擎: 放弃每次请求新建浏览器实例的做法,自主开发了一套基于池化技术的浏览器实例管理中间件,限制最大存活实例数,并设置定时销毁与健康度检查机制,彻底解决了 OOM 问题。
2) 动态渲染应对: 在快照截取脚本中注入自定义 JavaScript 探针,通过监听网络请求的 networkidle0 状态和特定的 DOM 节点渲染完成事件,结合动态代理 IP 池,成功攻克了复杂动态网页的完整快照抓取难题。

示例图片视频


老牛
30天前活跃
方向: 后端-C++、爬虫/脚本-爬虫/脚本、
交付率:100.00%
相似推荐
Java 应用集群迁移与 Elasticsearch 数据同步
一、背景与目标 客户因业务调整,需要将现有生产环境的网站服务及数据完整迁移至新服务器。涉及约 10 个 Java 网络应用程序及配套的搜索、消息队列服务。目标是在保证数据完整性的前提下,实现业务的平滑割接,确保迁移后服务可正常访问。 二、功能模块 1.全量服务迁移: 涵盖 Elasticsearch 7.8.0 搜索引擎、Nginx 反向代理、RabbitMQ 消息队列及 Redis 缓存服务的部署与配置还原。 2.Java 应用部署: 迁移并配置 10 个左右的 Java 后端应用,恢复其 JVM 参数及配置文件。 3.数据一致性保障: 执行数据库与索引数据的导出导入操作,确保新旧环境数据一致。
CentOS7 Docker 基础运行环境搭建与组件部署
客户需要在单台 CentOS 7 服务器上快速构建一套标准化的后端开发与运行环境。目标是替代繁琐的手动安装过程,通过容器化技术统一部署 MySQL、MongoDB、Redis、Kafka、Zookeeper、MinIO 等中间件,并预置 GoLang 开发环境,确保环境的一致性和可移植性。 功能模块: 1.中间件容器化: 集成 MySQL 5.7+、MongoDB 6.0+、Redis 7.0+、Kafka 及 Zookeeper 等核心组件,通过 Docker Compose 进行统一编排启动。 2.对象存储服务: 部署 MinIO 对象存储,用于非结构化数据的存储测试。 3.环境初始化: 编写初始化脚本,自动完成各组件的用户名密码配置(如 mysql/mongodb/redis/minio 统一认证),并安装 GoLang 1.18 及 Git 工具链,交付即可用的基础镜像环境。
MyDiary
海外版 Android 应用独立开发实践,基于 Kotlin + Jetpack Compose + MVVM 架构,覆盖音乐播放器与隐私日记两款产品。音乐播放器支持本地音频扫描、后台播放、通知/媒体会话控制、播放队列、进度控制、循环模式及状态持久化;隐私日记支持富文本编辑、图片/表情/标签、多字体主题、时间线浏览、本地密码锁、云同步备份恢复与数据导出,注重海外用户隐私合规、流畅交互与数据安全保障。负责需求分析、UI/UX、架构设计、音视频/数据存储/同步模块实现及持续迭代。
半熟类社交平台
重逢的创建初衷是提供一个平台,为用户维护个人的半熟社交人际关系,辅助用户整合非日常交流好友资源,以此为用户提供可能需要的人际关系价值。项目的主要通过iOS和Android两个主流平台APP提供服务,后端通过ECS中PHP提供平台服务,并通过Python提供一定的数据分析服务。
求职投递管理平台
当前大学生求职海投过程中,经常出现投递企业过多、面试进度混乱、遗忘跟进简历状态等问题,缺少轻量化的进度跟踪工具。本求职投递管理系统以此为背景立项,目标是打造一款浏览器本地存储的求职台账工具。系统包含投递记录管理、待办事项提醒、进度数据看板、求职漏斗统计、数据导出备份五大核心模块。用户可以新增、检索、筛选所有投递记录,实时查看投递、笔试、面试、offer 全流程状态;首页看板可视化展示投递总量、面试数量与回应率,临近面试任务自动提醒,所有数据保存在浏览器本地,无需后端服务器,保障个人求职隐私安全。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服