使用feedzirra解析XML产品提要

时间:2012-05-08 20:35:42

标签: ruby-on-rails feedzirra

我正在将一些200个产品Feed加载到一个非常耗时的网站中。看看新的方法(Nokogiri之外)我正在寻找Feedzirra。我现在正在使用Feedzirra 0.3.1。安装没有任何问题。

我想解析以下XML产品供稿(以及许多其他供稿):

feed = "http://adtraction.com/productfeed.htm?type=feed&format=XML&encoding=UTF8&epi=0&zip=0&cdelim=tab&tdelim=singlequote&sd=0&apid=52561763&asid=257117013"

feed_obj = Feedzirra::Feed.fetch_and_parse(feed)

但是当我这样做时,我只得到一个零响应。似乎它至少它正在获取提要,因为它在响应之前需要几秒钟。

我的问题:

  1. 为此可以使用Feedzirra吗?或者,Feedzirra只能用于RSS-feeds?
  2. 我可以期待使用Feedzirra更快地阅读和解析它们,还是这是一个死胡同?
  3. 你得到相同的答案和/或你能看出问题是什么吗?
  4. 编辑:更改了代码,这不是我在我的应用程序中使用的代码。

3 个答案:

答案 0 :(得分:1)

看起来Feedzirra正在使用sax-machine进行基于Nokogiri的xml解析,所以使用它而不是纯粹的nokogiri方法,你不太可能获得那么多的性能提升。可能有用的地方是自己与主人合作。如果没有变化,你可以相当容易地检查标题而不是一遍又一遍地拉文件

很可能你得到的是空响应,因为它超时了。

答案 1 :(得分:1)

您的代码段中有几个漏洞:

  1. 1不是Ruby中的变量,它是Fixnum,并且不能为其分配值
  2. 您必须在网址周围添加括号,以便将其转换为字符串并将其分配给变量。
  3. 除非你定义它,否则我很确定using不是Ruby中的指令
  4. 将您的代码更改为类似的内容,它应该最有效:

    first = "http://adtraction.com/productfeed.htm?type=feed&format=XML&encoding=UTF8&epi=0&zip=0&cdelim=tab&tdelim=singlequote&sd=0&apid=52561763&asid=257117013"
    feed = Feedzirra::Feed.fetch_and_parse(first)
    

    feed应该是某种Feedzirra对象,您可以继续使用它。

答案 2 :(得分:0)

仔细观察后,似乎Feedzirra仅适用于博客供稿,并不适用于我的问题。我将不得不考虑其他选择。