要查找给定的URL是否为RSS源URL

问题描述:

我有一个必须处理的URL列表,结果应该只是该列表中的RSS源URLS。要查找给定的URL是否为RSS源URL

如何识别给定链接是否为RSS Feed URL。

我需要在Java中建立程序和为我们的知识,是一个Java初学者。

请给我简单的建议。提前致谢。

+0

任何人都可以帮我解决上述问题.. 急需解决方案:( – LGAP 2010-08-09 15:47:56

有一些事情你可以试试,把我的头顶部:

  1. 看到什么Content-Type指定网址的服务器返回。但是,这可能不是确定性的,服务器可能不一定会返回正确的标题。
  2. 尝试将RSS的内容解析为RSS并查看它是否成功 - 这可能是给定URL是RSS源的唯一明确证据。

只给出URL,没有办法100%确定。 RSS文件通常是.xml,但不是(据我所知)需要具有该后缀。如果您只是基于“.xml”进行分类,您会犯很多错误 - 将很多非RSS文件分类为RSS,并将一些RSS文件分类为非RSS。

要真正确定,您需要在指定的URL中真正获取文件并对其进行解析。你应该找一个库来做到这一点,因为你自己解析它可能是一场噩梦。这个库看起来是合理的:http://www.davidpashley.com/projects/eddie.html您可以加载每个URL的内容,将它传递给库,并且如果库成功解析它,则将其标记为RSS或Atom提要。您可能会有错误的消极处理,但与仅基于URL进行分类相比,它们的使用频率会更低。

如果你关心的是RSS并且性能是一个问题(即你不想为每个文件启动一个SAX解析器),你可以阅读RSS规范(http://cyber.law.harvard.edu/rss/rss.html),并且只是做一些简单的字符串搜索广泛的文件,看起来可能是RSS文件。你会有更多的误报(可能会有一些误报),但速度会更快。这一切都取决于你想花多少时间在这方面,以及你有多确定需要。但要准确无误,你需要下载每个文件来检查它。

RSS文档是一个XML文件。 XML文件的格式在RSS Specification中给出。您可以使用Java中的XML解析器来读取和创建RSS源。
这里的教程可能有所帮助:RSS feeds with Java