采用Rome操作RSS

采用Rome操作RSS

作者:曹祺

Blog: http://blogs.sun.com/greysh

Web: http://www.greysh.com  

Email: Qi.Cao@Sun.com  

本文链接:

http://developers.sun.com.cn/blog/functionalca/entry/%E9%87%87%E7%94%A8rome%E6%93%8D%E4%BD%9Crss

源代码下载:

http://developers.sun.com.cn/blog/functionalca/resource/Greysh/FCA_Greysh_Rss.zip   

难度:入门

ROME: https://rome.dev.java.net/   

 

1.RSS简介

2.Rome简介

3.Helloworld

简介:本文为如何用ROME操作RSS的Helloworld教程

 

1.RSS简介

RSS(简 易资讯聚合)是一种消息来源格式规范,用以发布经常更新资料的网站,例如部落格文章、新闻、音讯或视讯的网摘。RSS文件(或称做摘要、网络摘要、或频更 新,提供到能道)包含了全文或是节录的文字,再加上发用者所订阅之网摘布资料和授权的元数据。网络摘要专业层面能够者自和阅读网摘的使动地发布他们的资 料,同时也使读者能更够定期更新他们喜欢的网站或是聚合不同网站的网摘。RSS摘要可以借由RSS阅读器、feed reader或是aggregator等网页或以桌面为架构的软件来阅读。标准的XML档式可允许资讯在一次发布后透过不同的程式阅览。使用者借由将网摘 输入RSS阅读器或是用鼠标点取浏览器上指向订阅程序的RSS小图示之URI(非通常称为URL)来订阅网摘。RSS阅读器定期检阅使是否有更新,然后下 载够监看用者接口。

----摘自维基百科

以下是RSS的例子

<? xml version = "1.0" encoding = "ISO-8859-1" ?>

< rss version = "2.0" >

    < channel >

       < title > W3School Home Page </ title >

       < link > http://www.w3school.com.cn </ link >

       < description > Free web building tutorials </ description >

       < item >

           < title > RSS Tutorial </ title >

           < link > http://www.w3school.com.cn/rss </ link >

           < description > New RSS tutorial on W3School </ description >

       </ item >

       < item >

           < title > XML Tutorial </ title >

           < link > http://www.w3school.com.cn/xml </ link >

           < description > New XML tutorial on W3School </ description >

       </ item >

    </ channel >

</ rss >

简单的说, RSS 是网站新闻的 XML 摘要

 

2.ROME简介

常用的RSS生成框架很多,如RSSLibJ,RSSLIB4J,FLOCK,就个人而言���好用的还是Rome

用ROME去生成一个RSS,只需要指定版本号和路径,解析一个RSS只需要指定URL

 

3.Helloworld教程

 

└─ com

    └─ greysh

        └─ rss

            ├─ model

                  ChannelItem.java

           

            ├─ service

                RssReader.java

                RssWriter.java

             

              └─ impl

                      RssReaderImpl.java

                      RssWriterImpl.java

           

            └─ test

                    RssReaderTest.java

                    RssWriteTest.java

ChannelItem 为制定的实体,包含 RSS 的一些基本属性

private String title ;

private String link ;

private String description ;

private Date pubDate ;

private String author ;

private String category ;

RssReader RssWriter 分别是解析和创建 RSS 的接口

RssRead 只需要设定路径即可

public interface RssReader {

    public void init(String url);

    public List<?> getEntries() throws MalformedURLException, IllegalArgumentException, FeedException, IOException;

}

然后得到 Feed 的实体列表

RssWriter 只需要制定路径和版本号即可,一般用 RSS 2.0 或者 ATOM

public interface RssWriter {

 

    public void setChannel(String title, String link, String description,

           String language, Date pubDate, String copyright);

   

    public void addChannelItem(ChannelItem channelItem);

   

    public void init(String path,String version);

   

    public void build() throws IOException, FeedException;

}

 

运行时候 先用 init 初始化,然后用 setChannel 设定频道,然后用 addChannelItem 添加子项,最后用 build 生成 rss

详情请运行上传代码的 Test 文件

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot提供了许多属性来配置应用程序,包括抓取RSS的功能。您可以在application.properties或application.yml文件中指定这些属性,也可以通过命令行开关来配置。 要抓取RSS,您可以使用Spring Boot提供的相关类和注解。首先,确保您的项目中已经添加了相关的依赖。在Gradle中,您可以在build.gradle文件中添加以下配置: ```groovy dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'rome:rome' } ``` 然后,您可以创建一个Controller类来处理抓取RSS的请求。使用`@RestController`注解标记该类,并使用`@GetMapping`注解指定处理GET请求的方法。在方法中,您可以使用Rome库来抓取和解析RSS。 ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.rometools.rome.feed.synd.SyndFeed; import com.rometools.rome.io.SyndFeedInput; import com.rometools.rome.io.XmlReader; @RestController public class RssController { @GetMapping("/rss") public SyndFeed getRssFeed() { try { String rssUrl = "https://example.com/rss-feed"; // 替换为实际的RSS源URL SyndFeedInput input = new SyndFeedInput(); SyndFeed feed = input.build(new XmlReader(new URL(rssUrl))); return feed; } catch (Exception e) { // 处理异常 return null; } } } ``` 在上面的示例中,我们创建了一个`RssController`类,并在`/rss`路径上定义了一个GET请求的处理方法。该方法使用Rome库来抓取和解析指定的RSS源,并返回`SyndFeed`对象。 请注意,上述示例仅提供了一个基本的框架,您可能需要根据实际需求进行进一步的处理和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值