`

java使用rome.jar实现rss阅读功能

    博客分类:
  • java
阅读更多

rome是一个很好用的解析rss的工具包,支持rote格式,最近在项目中使用了此包,共享给大家。在此只公开部分代码public class FeedReader {

	public static void main(String[] args) {
		String source = "http://www.36kr.com/feed";
		// source = "http://news.163.com/special/00011K6L/rss_newstop.xml";
		// source = "http://hi.baidu.com/ybhanxiao/rss";
		// source = "http://ybhanxiao.iteye.com/rss";
		// source="http://www.luoyundeng.com/?feed=rss2";
		// source = "http://yanglanvip.blog.sohu.com/rss";
		// source="http://feed.williamlong.info/";
		try {

			SyndFeed feed = readFeed(source);
			ReaderSource readerSource = new ReaderSource();
			if (feed != null) {

				getArticles(feed, readerSource, null);
			}
			System.out.println(readerSource.getSourceName() + readerSource.getSourceDesc());

		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (FeedException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (SecurityException e) {
			System.out.print("异常" + e);
		}
	}

	/**
	 * 请求rss并返回syndFeed
	 * 
	 * @param source
	 * @return
	 * @throws IllegalArgumentException
	 * @throws FeedException
	 * @throws IOException
	 * @author echo
	 * @date 2012-1-11
	 */
	@SuppressWarnings("unchecked")
	public static SyndFeed readFeed(String source) throws IllegalArgumentException, FeedException, IOException {

		// SyndFeedInput:从远程读到xml结构的内容转成SyndFeedImpl实例
		SyndFeedInput input = new SyndFeedInput();
		// Locale.setDefault(Locale.ENGLISH);
		SyndFeed feed = null;
		if (source.startsWith("http")) {
			URLConnection feedUrl = new URL(source).openConnection();
			/**
			 *解决此异常: java.io.IOException: Server returned HTTP response code:
			 * 403 for URL 但是自己却可以用浏览器访问,发现可能是服务器对java程序屏蔽了。
			 * 因为服务器的安全设置不接受Java程序作为客户端访问,解决方案是设置客户端的User Agent
			 */
			feedUrl.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
			feedUrl.setConnectTimeout(5000);

			feed = input.build(new XmlReader(feedUrl));

		} else {
			File feedUrl = new File(source);
			feed = input.build(new XmlReader(feedUrl));

		}
		return feed;
	}}

如果解析某些站点时候日期出现为空时可以再src下加入rome.properties文件,并将datetime.extra.masks的指改为如下:

 

yyyy-MM-dd HH:mm:ss|yyyy-MM-dd HH:mm|yyyy-MM-dd  

 

分享到:
评论

相关推荐

    rome-1.0.jar rome.jar 源码

    "rome-1.0.jar" 和 "rome.jar" 是两个这样的库,它们主要用于处理RSS(Really Simple Syndication)和Atom格式的数据,即新闻聚合和内容发布的标准。这些jar文件包含了处理这些格式的类和方法,使得开发者无需从头...

    RSS.zip_Rome.jar_java r_java rss_rss feed jar_rss java

    标题中的“RSS.zip_Rome.jar_java r_java rss_rss feed jar_rss java”表明这是一个与Java RSS处理相关的资源包,其中包含了Rome库的jar文件和其他可能的Java代码示例。Rome是Java社区中一个流行的RSS和Atom聚合库,...

    java_rss.rar_EXML.jar _RSSLibJ _rome jar_rome.j

    总之,"java_rss.rar"提供的这三个库——EXML.jar、RSSLibJ和Rome,为Java开发人员提供了强大的工具,使他们能够轻松地进行RSS订阅和内容管理。无论你是要创建新的RSS feed,还是从现有源抓取和处理数据,这些库都能...

    可以用的jdom+rome.jar

    JDOM和ROME的结合使用,可以实现从XML文档中提取RSS Feed,然后通过ROME解析这些Feed,提取出文章标题、描述、链接等信息,甚至可以进一步处理这些信息,比如存入数据库或进行数据分析。这样的组合,为开发者提供了...

    rome-1.0.jar.zip

    标题 "rome-1.0.jar.zip" 暗示我们正在处理一个压缩文件,其中包含一个名为 "rome-1.0.jar" 的Java归档(JAR)文件。描述同样简单明了,只重复了标题的信息。标签 "rome-1.0.jar" 强调了压缩包的核心内容。压缩包内...

    rome-0.9.jar

    解压后,开发者可以直接将"rome-0.9.jar"添加到Java项目的类路径中,以便在项目中使用Rome的功能。 "rome-license.txt"则包含了Rome库的许可协议,这是开源软件中常见的文件,通常会声明软件的使用、修改和分发的...

    rome-1.5.0.jar

    Rome是为RSS聚合而开发的一个框架,让你可以快速的开发基于java的RSS阅读

    jdom rome.jar

    jdom 1.1.2最新版本, rome.jar为RSS聚合而开发的一个框架,让你可以快速的开发基于java的RSS阅读

    jdom+rome JAR包

    而"jdom+rome JAR包"是两个Java库,用于帮助开发者更方便地处理XML文档,并创建和管理RSS馈送。 **JDOM库** JDOM,全称Java Document Object Model,是一个为Java平台设计的DOM(Document Object Model)实现。...

    java中rss解析器(rome.jar和jdom.jar)示例

    `rome.jar`是Java中的一个RSS和Atom聚合库,它提供了处理RSS和Atom feed的API。`jdom.jar`是一个轻量级的XML解析库,用于处理XML文档,它是Rome库的依赖之一。 1. 添加库到项目: 确保你的项目类路径包含了这两个库...

    rome源码包和jar包

    【罗马(Rome)框架详解】 ...通过深入研究其源码,我们可以更好地理解RSS/Atom的工作机制,并利用Rome提供的功能高效地实现各种定制需求。无论你是新手还是经验丰富的开发者,Rome都是处理XML feeds的理想选择。

    读取rss依赖lib

    总的来说,通过使用`rome.jar`和`jdom-1.0.jar`,我们可以方便地在Java中解析和操作RSS feed。在WebLogic和Linux 5 x64环境下,正确配置类路径和JDK版本是成功运行的关键。在实际开发中,还需要注意错误处理和资源...

    RSS阅读器相关jar包下载

    在Java环境下开发RSS阅读器时,可能会用到一系列的jar包来帮助处理这些任务。以下是一些可能用于RSS阅读器开发的关键知识点: 1. **XML解析库**:由于RSS是基于XML的,因此需要一个XML解析库来解析RSS feed。Java中...

    RSS解析使用的相关JAR包

    可能包括了使用Rome库和JDOM库的方法,如初始化RSS阅读器、解析馈送、提取条目信息等。例如,`RssUtil`可能有一个静态方法`parseRssFeed(String feedUrl)`,该方法使用Rome的`RssReader`读取给定URL的RSS馈送,并...

    jdom+rome-0.9 jar包合集

    总的来说,"jdom+rome-0.9 jar包合集"是一个包含处理XML和构建RSS feeds所需库的打包资源。无论是为了解析XML文档,还是为了创建和维护RSS feeds,JDOM和ROME都是Java开发者不可或缺的工具。通过熟悉并掌握这两个库...

    利用Rome解析Rss

    Rome 是一个基于 Java 的开源项目,提供了一组 Atom/RSS 工具类,以使得用 Java 可以更方便和快捷地操作大部分 Syndication 格式数据。Rome 需要 JDK1.4 以上版本和 JDom.jar。 Rome 的主要功能包括解析器和生成器...

    rome-1.0 jdom 第一个RSS发布实例

    标题中的“rome-1.0 jdom 第一个RSS发布实例”揭示了本次讨论的主要内容,涉及到两个关键的Java库——Rome和JDOM,以及如何使用它们来创建和发布RSS(Really Simple Syndication) feed。RSS是一种XML格式,用于发布...

    jdom和rome1.0包

    开发者可以将这些JAR文件添加到他们的项目类路径中,以便直接使用JDOM和ROME的功能。 综上所述,这个压缩包提供了一套工具,帮助Java开发者处理XML文档,特别是与RSS feed相关的任务。通过JDOM,开发者可以高效地...

    (struts,spring,hibernate) jar 包大全(六)

    - `rome-1.0.jar`:Rome 是处理RSS和Atom feeds的Java库。 - `p6spy-1.3.jar`:P6Spy 是一个数据库监控工具,可以在不修改应用程序代码的情况下,对SQL进行日志记录和分析。 - `servlet-api.jar`:Servlet API 是...

    rome-1.0RC1.zip

    在实际使用中,开发者可以通过导入这个JAR包到他们的Java项目中,或者利用Maven或Gradle的依赖管理功能,直接引用ROME项目,然后通过编写代码调用其提供的类和方法来处理RSS feed。例如,使用`RomeFeedReader`类读取...

Global site tag (gtag.js) - Google Analytics