# news **Repository Path**: imliuxi/news ## Basic Information - **Project Name**: news - **Description**: 百度热点新闻爬取解析读取 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-07 - **Last Updated**: 2025-08-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 热门新闻聚合器 一个基于Java Swing的现代化新闻聚合应用程序,可以从多个热门网站获取实时新闻信息。 ## 功能特性 - **多源新闻聚合**:支持从哔哩哔哩、微博、百度、知乎、今日头条等多个热门网站获取新闻 - **真实百度热搜**:直接获取百度热搜榜单,显示真实的热门话题和搜索量 - **实时更新**:支持手动刷新和自动更新新闻内容 - **智能搜索**:支持关键词搜索,可以搜索特定新闻源或全部新闻源 - **现代化界面**:使用FlatLaf主题,提供美观的用户界面 - **新闻详情**:点击新闻可查看详细内容,支持打开原文链接 - **详情增强**:新增"查看详情"按钮,获取更丰富的新闻内容和相关信息 - **多线程处理**:异步加载新闻,不阻塞用户界面 - **缓存机制**:内置新闻缓存,提高响应速度 - **智能解析**:自动解析网页内容,提取新闻摘要和详细信息 ## 技术栈 - **Java 8**:核心开发语言 - **Maven**:项目构建工具 - **Swing**:桌面应用程序GUI框架 - **FlatLaf**:现代化外观主题 - **Apache HttpClient**:HTTP请求处理 - **Gson**:JSON数据处理 - **Logback**:日志记录框架 - **JSoup**:HTML解析(预留) ## 系统要求 - Java 8 或更高版本 - Windows/Linux/macOS 操作系统 - 至少 256MB 内存 - 网络连接(用于获取新闻数据) ## 快速开始 ### 1. 克隆项目 ```bash git clone cd news ``` ### 2. 编译项目 ```bash mvn clean compile ``` ### 3. 运行应用 ```bash mvn exec:java -Dexec.mainClass="com.news.NewsApplication" ``` ### 4. 打包可执行JAR ```bash mvn package java -jar target/news-1.0-SNAPSHOT.jar ``` ## 使用说明 ### 主界面 - **左侧面板**:新闻列表和搜索功能 - **右侧面板**:新闻详情显示 - **顶部工具栏**:包含刷新按钮 - **底部状态栏**:显示当前操作状态 ### 基本操作 1. **查看新闻**:应用启动后自动加载热门新闻,点击列表中的新闻可查看详情 2. **刷新新闻**:点击顶部的"刷新"按钮可重新获取最新新闻 3. **搜索新闻**:在搜索框中输入关键词,选择新闻源(可选),点击"搜索"按钮 4. **查看详情**:选择新闻后,点击右侧的"查看详情"按钮获取更丰富的新闻内容 5. **打开原文**:在新闻详情页面右键点击,选择"打开链接"可在浏览器中查看原文 ### 支持的新闻源 - **哔哩哔哩**:热门视频和动态内容 - **微博**:热门话题和社交动态 - **百度**:热门搜索和新闻资讯 - **知乎**:热门问答和专业讨论 - **今日头条**:综合新闻资讯 ## 配置说明 ### 日志配置 日志配置文件位于 `src/main/resources/logback.xml`,可以调整日志级别和输出格式。 ### 新闻源配置 新闻源在 `NewsSource` 枚举中定义,可以根据需要添加或修改新闻源。 ## 开发说明 ### 项目结构 ``` src/main/java/com/news/ ├── NewsApplication.java # 主应用程序类 ├── model/ # 数据模型 │ ├── NewsItem.java # 新闻项目模型 │ └── NewsSource.java # 新闻源枚举 ├── service/ # 服务层 │ ├── NewsService.java # 新闻服务接口 │ ├── NewsFetcher.java # 新闻获取器接口 │ ├── NewsDetailService.java # 新闻详情服务接口 │ └── impl/ # 实现类 │ ├── NewsServiceImpl.java # 新闻服务实现 │ ├── NewsDetailServiceImpl.java # 新闻详情服务实现 │ ├── BilibiliNewsFetcher.java # B站新闻获取器 │ ├── BaiduNewsFetcher.java # 百度热搜获取器 │ └── GeneralNewsFetcher.java # 通用新闻获取器 ├── ui/ # 用户界面 │ ├── MainWindow.java # 主窗口 │ └── NewsItemRenderer.java # 新闻项目渲染器 └── util/ # 工具类 └── HttpUtil.java # HTTP工具类 ``` ### 扩展新闻源 1. 在 `NewsSource` 枚举中添加新的新闻源 2. 创建对应的 `NewsFetcher` 实现类 3. 在 `NewsServiceImpl` 中注册新的获取器 ### 自定义界面 可以通过修改 `MainWindow` 类来自定义界面布局和样式。 ## 常见问题 ### Q: 无法获取新闻数据 A: 请检查网络连接,确保可以访问相关网站。某些网站可能需要特殊的API密钥或认证。 ### Q: 界面显示异常 A: 请确保使用的是支持的Java版本,并且系统支持图形界面。 ### Q: 应用启动失败 A: 检查Java版本是否正确,确保所有依赖都已正确安装。 ## 许可证 本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。 ## 贡献指南 欢迎提交问题和改进建议!请遵循以下步骤: 1. Fork 本项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 更新日志 ### v1.1.0 - 🎉 新增真实百度热搜获取功能 - 🔍 新增"查看详情"按钮,获取更丰富的新闻内容 - 🚀 优化新闻详情服务,支持智能内容解析 - 📱 改进用户界面,提供更好的交互体验 - 🛠️ 增强网页内容解析能力 - 🔧 优化HTTP请求处理和错误处理 ### v1.0.0 - 初始版本发布 - 支持多源新闻聚合 - 实现搜索功能 - 提供现代化用户界面