首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用RSSHub订阅我的b站

使用RSSHub订阅我的b站

作者头像
阿超
发布2025-01-05 09:23:21
发布2025-01-05 09:23:21
8360
举报
文章被收录于专栏:快乐阿超快乐阿超

孤独一人也没关系,只要能发自内心地爱着一个人,人生就会有救。哪怕不能和他生活在一起。——《1Q84》

要用 Java 实现一个简单的订阅网站,可以通过类似的方式来解析 RSS 数据并显示到页面上。我们可以使用 Spring Boot 来搭建 Web 服务器,使用 rome 这个库来解析 RSS 数据。

以下是一个 Java 版本的实现,使用 Spring Boot 和 rome 来实现订阅功能。

1. 创建 Spring Boot 项目

首先,你可以使用 Spring Initializr 创建一个 Spring Boot 项目:

  • 打开 Spring Initializr
  • 选择 Maven 项目、Java 版本和 Spring Boot 版本
  • 添加 Spring Web 依赖
  • 生成并下载项目,解压并导入到 IDE(如 IntelliJ IDEA 或 Eclipse)

或者,你也可以手动创建一个 Spring Boot 项目并添加依赖。

2. 添加依赖

pom.xml 文件中添加 rome 库的依赖:

代码语言:txt
复制
<dependencies>
    <!-- Spring Boot Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Rome for RSS feed parsing -->
    <dependency>
        <groupId>com.rometools</groupId>
        <artifactId>rome</artifactId>
        <version>1.15.0</version>
    </dependency>

    <!-- Spring Boot Starter Thymeleaf (for rendering views) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
</dependencies>

3. 创建一个 Controller

创建一个 Controller 来处理 HTTP 请求并解析 RSS 数据。

代码语言:txt
复制
package com.example.rsssubscription.controller;

import com.rometools.rome.feed.rss.Channel;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.XmlReader;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.net.URL;
import java.util.List;

@Controller
@RequestMapping("/")
public class RSSController {

    private static final String RSS_URL = "https://rsshub.app/bilibili/user/video/34830549";

    @GetMapping
    public String index() {
        return "index";
    }

    @GetMapping("/subscribe")
    public String subscribe(Model model) {
        try {
            // 解析 RSS 数据
            URL url = new URL(RSS_URL);
            SyndFeedInput input = new SyndFeedInput();
            Channel channel = input.build(new XmlReader(url));

            // 获取 RSS 条目(即视频信息)
            List<com.rometools.rome.feed.rss.Entry> entries = channel.getEntries();
            model.addAttribute("videos", entries);
        } catch (Exception e) {
            e.printStackTrace();
            model.addAttribute("error", "无法获取视频订阅,请稍后再试。");
        }
        return "subscribe";
    }
}

4. 创建 Thymeleaf 模板

src/main/resources/templates/ 文件夹下创建两个 HTML 模板文件:

index.html(首页)
代码语言:txt
复制
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Bilibili 视频订阅</title>
</head>
<body>
    <h1>欢迎订阅 Bilibili 用户视频</h1>
    <p><a href="/subscribe">点击查看最新视频</a></p>
</body>
</html>

subscribe.html(订阅页面)
代码语言:txt
复制
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>订阅内容 - Bilibili 视频</title>
</head>
<body>
    <h1>最新的视频列表</h1>

    <div th:if="${error}">
        <p th:text="${error}"></p>
    </div>

    <div th:if="${videos}">
        <ul>
            <li th:each="video : ${videos}">
                <a th:href="@{${video.link}}" target="_blank" th:text="${video.title}"></a><br>
                <span th:text="${video.publishedDate}"></span>
                <p th:text="${video.description}"></p>
            </li>
        </ul>
    </div>

    <p><a href="/">返回首页</a></p>
</body>
</html>

5. 启动 Spring Boot 项目

在 IDE 中启动 Spring Boot 应用,或者在项目根目录运行以下命令:

代码语言:txt
复制
mvn spring-boot:run

6. 访问页面

  • 打开浏览器访问 http://localhost:8080/,你将看到首页,点击 “点击查看最新视频” 链接。
  • 页面会跳转到订阅页面,显示最新的视频列表,包括视频标题、发布日期和简短描述,每个视频都可以点击跳转到 Bilibili 查看完整内容。

7. 总结

这个简单的订阅网站实现了一个功能,用户可以通过访问网站来查看指定 Bilibili 用户上传的最新视频。你可以根据需要进一步扩展这个功能,例如:

  • 定时刷新:定期更新视频列表。
  • 多个订阅源:支持多个 RSS 订阅源。
  • 美化界面:使用 CSS 或其他前端框架来优化页面样式。
  • 用户管理:支持用户自定义订阅 URL。

通过 Spring Boot 和 Rome 库,快速地实现了一个简单的 RSS 订阅网站。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-02,如有侵权请联系 [email protected] 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 [email protected] 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 创建 Spring Boot 项目
  • 2. 添加依赖
  • 3. 创建一个 Controller
  • 4. 创建 Thymeleaf 模板
    • index.html(首页)
    • subscribe.html(订阅页面)
  • 5. 启动 Spring Boot 项目
  • 6. 访问页面
  • 7. 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档