我有一个必须处理的网址列表,结果应该只是该列表中的RSS Feed网址。
如何识别给定链接是否为RSS Feed URL。
我需要用Java构建程序,为了你的知识,我是Java的初学者。
请同样简要地告诉我。提前谢谢。
答案 0 :(得分:4)
有些事情你可以尝试,从我的头顶开始:
Content-Type
。但是,这可能不是确定的,服务器可能不一定返回正确的标头。答案 1 :(得分:1)
只有URL,没有办法100%确定。 RSS文件通常是.xml,但不是(据我所知)需要具有该后缀。如果您只是根据“.xml”进行分类,则会出现很多错误 - 将大量非RSS文件分类为RSS,将一些RSS文件分类为非RSS。
要确定,您需要实际获取指定URL的文件并解析它。您可能应该找到一个库来执行此操作,因为自己解析它可能是一场噩梦。这个库看起来很合理:http://www.davidpashley.com/projects/eddie.html您可以加载每个URL的内容,将其交给库,如果库成功解析它,则将其标记为RSS或Atom提要。您可能有误报,但与您尝试仅根据网址进行分类相比,它们的频率会降低。
如果您关心的是RSS并且性能是个问题(即您不想为每个文件启动SAX解析器),您可以阅读RSS规范(http://cyber.law.harvard.edu/rss/rss.html)并且只是做一些简单的字符串搜索文件,看起来像它们可能是RSS文件。你会有更多的误报(可能还有一些假阴性),但它会更快。这一切都取决于你想花多少时间在这上面,以及你需要多么确定。但要完全准确,您需要下载每个文件进行检查。
答案 2 :(得分:1)
RSS文档是一个XML文件。 XML文件的格式在RSS Specification中给出。您可以使用Java中的XML解析器来读取和创建RSS源 这里有一个可能有用的教程:RSS feeds with Java。