0

我正在将大约 200 个产品提要加载到一个非常耗时的网站中。寻找新的方法来做到这一点(在 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 提要?
  2. 我可以期望使用 Feedzirra 更快地阅读和解析它们吗?或者这是一条死胡同?
  3. 您是否得到相同的响应和/或您能看出问题所在吗?

编辑:更改了代码,这并不是我在应用程序中使用的代码。

4

3 回答 3

1

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

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

于 2012-05-08T20:48:22.617 回答
1

您的代码片段中有几个缺陷:

  1. 1不是 Ruby 中的变量,它是一个Fixnum并且不能为它分配任何值
  2. 您必须在 url 周围加上括号才能将其转换为字符串并将其分配给变量。
  3. 除非您定义它,否则我很确定这using不是 Ruby 中的指令

将您的代码更改为这样的内容,它很可能应该可以工作:

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 对象。

于 2012-05-08T21:11:09.713 回答
0

仔细一看,Feedzirra 似乎只适用于博客提要,并不真正适用于我的问题。我将不得不考虑其他选择。

于 2012-05-10T09:59:37.700 回答