从Ruby中的RSS Feed获取日期

时间:2009-04-18 17:18:56

标签: ruby rss

我正在按照http://www.rubyrss.com/的说明解析来自craigslist.org的Feed:

http://seattle.craigslist.org/sof/index.rss

一切似乎都运行良好,但是当我无法从解析的对象中获取任何日期时:

irb(main):010:0> rss.date
NoMethodError: undefined method `date' for #<RSS::RDF:0x2c412b8>
        from (irb):10
irb(main):011:0> rss.channel.date
NoMethodError: undefined method `date' for #<RSS::RDF::Channel:0x2c406ec>
        from (irb):11
        from :0
irb(main):012:0> rss.items[0].date
NoMethodError: undefined method `date' for #<RSS::RDF::Item:0x2cdc290>
        from (irb):12
        from :0
irb(main):013:0> rss.items[1].date
NoMethodError: undefined method `date' for #<RSS::RDF::Item:0x2cd04a4>
        from (irb):13
        from :0

我在这里做错了什么?

2 个答案:

答案 0 :(得分:4)

你真的应该切换库。我建议使用Feedzirra。它的方式,方式,速度更快,并且得到了积极的维护。

require "feedzirra"
feed = Feedzirra::Feed.fetch_and_parse("http://seattle.craigslist.org/sof/index.rss")
feed.entries.first.published
# => Fri Apr 24 18:27:28 UTC 2009

答案 1 :(得分:2)

使用Firefox查看RSS订阅源,以便您可以轻松查看订阅源的结构。日期项目使用“Dublin Core”<dc:date>

表示

试试这个:

require 'rss/dublincore'
rss.items[3].dc_date  #=>  Sat Apr 18 01:02:11 -0400 2009

更多细节 Ruby rss parser referenceDublin Core