Java初步实现RSS内容订阅
侧边栏壁纸
  • 累计撰写 190 篇文章
  • 累计收到 1,268 条评论

Java初步实现RSS内容订阅

萧瑟
2022-05-25 / 6 评论 / 708 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年05月25日,已超过910天没有更新,若内容或图片失效,请留言反馈。

最近一直在优化十年之约的RSS接口,感觉抓取每天抓取的频率和内容有点少,而且我也想订阅一些其他的RSS内容,就简单研究了一些。

RSS是什么?

RSS是一种网页内容联合格式(web content sydication format)。它的名字是Really Simple Syndication的缩写。

RSS是XML的一种。所有的RSS文档都遵循XML 1.0规范,该规范发布在W3C网站上。 在一个RSS文档的开头是一个节点和一个规定的属性version,该属性规定了该文档将以RSS的哪个版本表示。如果该文档以这个规范来表示,那么它的version属性就必须等于2.0。 在节点的下一级是一个独立的节点,该节点包含关于channel的信息和内容。

简单实现抓取

POM引入rome包,这里我们用最新版的,不再使用旧版本

<dependency>
    <groupId>com.rometools</groupId>
    <artifactId>rome</artifactId>
    <version>1.15.1</version>
</dependency>
package com.bcrjl.backend.snzy.rss;

import com.rometools.rome.feed.synd.SyndEntry;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.XmlReader;
import lombok.extern.slf4j.Slf4j;

import java.net.URL;

/**
 * RSS 订阅
 *
 * @author xiaose
 * @date 2022-05-25
 */
@Slf4j
public class FeedGrabFocus {

    public static void main(String[] args) {
        try {
            String url = "https://blog.yanqingshan.com/feed/";
            try (XmlReader reader = new XmlReader(new URL(url))) {
                SyndFeed feed = new SyndFeedInput().build(reader);
                System.out.println(feed.getTitle());
                System.out.println("***********************************");
                for (SyndEntry entry : feed.getEntries()) {
                    System.out.println(entry);
                    System.out.println("***********************************");
                }
                System.out.println("Done");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

效果图

接下来就要整合域名和quartz定时任务来搞一下动态订阅数据。

评论 (6)

取消
  1. 头像
    1900
    四川省自贡市 Windows 10 · Google Chrome

    效果挺好的。

    回复
  2. 头像
    1900
    四川省自贡市 Windows 10 · Google Chrome

    看到你这个文章忽然想起我刚学习编程的时候。
    我的第一个程序就是一个本地RSS阅读器,主要掌握了ini配置文件、文件流库的使用。

    回复
    1. 头像
      萧瑟 作者
      北京市 Windows 10 · Microsoft Edge
      @ 1900

      语言该不会是C吧?表情

      回复
      1. 头像
        1900
        四川省自贡市 Windows 10 · Google Chrome
        @ 萧瑟

        猜对一半,C++++,又称C#

        回复
  3. 头像
    珂泽
    河南省驻马店市 Windows 10 · Microsoft Edge

    快进到一款RSS阅读器表情

    回复
    1. 头像
      萧瑟 作者
      北京市 Windows 10 · Microsoft Edge
      @ 珂泽

      逐步迭代升级中。表情

      回复