在 Ruby/Rails 中解析 A​​tom 和 RSS?

Posted

技术标签:

【中文标题】在 Ruby/Rails 中解析 A​​tom 和 RSS?【英文标题】:Parsing Atom & RSS in Ruby/Rails? 【发布时间】:2010-09-17 21:26:57 【问题描述】:

我正在寻找可以让我在 Ruby 和 Rails 中解析 A​​tom 和 RSS 的东西。我查看了标准 RSS 库,但是否有一个库可以自动检测它是什么类型的提要并为我解析它?

【问题讨论】:

ruby-toolbox.com/categories/feed_parsing 【参考方案1】:

Googleage 揭示了一些事情。他们不能接受吗?

Simple RSSRuby-Feedparser

require 'simple-rss'
require 'open-uri'
rss = SimpleRSS.parse open('http://slashdot.org/index.rdf')
rss.channel.title # => "Slashdot"

【讨论】:

Simple-RSS 看起来不错,但已经 2 年没有更新了。 Feedparser 看起来也不错,但似乎没有 gem,它是 0.6。我希望会有一些更成熟的东西,通常是标准。 我知道您对想要使用活跃项目的感受,但如果 R​​SS 和 RDF 规范最近没有太大变化,也许这些可以解决问题。 :) 我会用 Simple RSS 试一试——但我真的很惊讶没有更好的解决方案——考虑到 web 2.0-y Ruby/Rails 和 RSS 是你认为的将它们结合起来会是一个不错的包。 很有可能有特定于 Rails 的解决方案。不过,我还没有用谷歌搜索它。 SimpleRSS 存在编码问题,大约 1 年没有修复。【参考方案2】:

如果您遇到糟糕的提要,您可能需要使用HPricot 来解析提要。

【讨论】:

您是否选择了 Hpricot,我试过了,但无法从提要中获取所有信息。它的表现比 Nokogiri 更好,后者无法处理格式错误的提要。 嗯,一两次,Hpricot 无法处理一些非常破碎的饲料,但除此之外,它一直对我来说工作正常。例如,我将它用于learnivore.com。【参考方案3】:

Feed Normalizer 看起来可能是个不错的选择

https://github.com/aasmith/feed-normalizer

【讨论】:

它看起来像 feed-normalizer 包装了简单的 RSS,从安装它。我只是用它来搜索混合 Rss/Atom 提要的 OPML 文件 - 它似乎非常不可知论,我不知道也不关心它在看什么,这很适合我!【参考方案4】:

Feedzirra 是更好的选择之一:http://www.pauldix.net/2009/02/feedzirra-a-ruby-feed-library-built-for-speed.html

当然,自从我写了它,我就有偏见。 :)

【讨论】:

我同意。 Feedzirra 是最好的。真快。感谢 Paul Dix 提供了这个令人惊叹的图书馆。 不幸的是,它的主动支持依赖在其最新版本(在 rails 2.3.8,而不是 3)上被破坏了。由于我没有使用 jruby,而且这个库使用本机扩展,所以对我来说没有 osgi。太糟糕了,Feedzirra 看起来很有希望.... 现在是feedjira吗?【参考方案5】:

我喜欢使用 niokrigi 或 scrapi 来解析 atom/rss 提要中的 xml。 http://www.rubyinside.com/nokogiri-ruby-html-parser-and-xml-parser-1288.html

【讨论】:

【参考方案6】:

我尝试过 Feedzirra 和 SimpleRSS,我发现两者都很好用。不过 Feedzirra 速度更快,因此如果您正在寻找它的性能,那么 Feedzirra 会更好。

【讨论】:

【参考方案7】:

看起来standart Ruby RSS library 在 2009 年还不存在?

【讨论】:

P.S.:它对我不起作用,因为某些提要看起来不像 RFC。

以上是关于在 Ruby/Rails 中解析 A​​tom 和 RSS?的主要内容,如果未能解决你的问题,请参考以下文章

ruby编程中异常处理的实践解析

Ruby/Rails CSV 解析,UTF-8 中的无效字节序列

如何使用ruby / rails将所有大写字母转换为适当的首字母大写字母,其余为小写?

Ruby / Rails 4.2 - 如果A && B,其中B条件取决于Rails环境

内推A轮易美健-SaaS产品经理+Ruby/Rails开发工程师

Ruby/Rails 中的夏令时开始和结束日期