2012-05-08 3 views
0

Я загружаю около 200 продуктов на веб-сайт, который невероятно трудоемкий. Глядя на новые способы сделать это (за пределами Нокигири), я смотрю на Feedzirra. Я использую Feedzirra 0.3.1 на данный момент. Установка без проблем.Использование feedzirra для анализа XML-продуктов.

Я хочу, чтобы разобрать следующие каналы 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. Получаете ли вы тот же ответ и/или видите ли вы, что проблема может быть?

Редактировать: Изменен код, это был не тот, который я использовал в своем приложении.

+0

Что делает использование? – klaffenboeck

+0

Извините, это был кусок «всего лишь текста», который попал в код ... – Christoffer

ответ

0

После более близкого взгляда кажется, что Feedzirra предназначен только для блога и не применим для моей проблемы. Мне нужно будет изучить другие варианты.

1

Похоже, что Feedzirra использует саксовую машину для синтаксического анализа xml, которая основана на Nokogiri, поэтому вряд ли вы получите такую ​​высокую производительность, используя ее вместо чистого подхода nokogiri. Там, где это может быть полезно, он работает с хозяином. вы можете довольно легко проверить заголовки и не вытаскивать файл снова и снова, если в нем не было никаких изменений.

Скорее всего, вы получаете пустой ответ, потому что время истекает.

+0

Хорошо, круто. Я посмотрю на это. Некоторые файлы продуктов - 32 Мб. Загрузка обычно не является тем, что занимает больше всего времени, но это больше актуальное обновление после загрузки. Может быть, хорошо знать, должен ли я использовать Feedzirra или нет, нужно немного больше информации, хотя по моим вопросам, прежде чем я оставлю это полностью. – Christoffer

1

Есть несколько недостатков в программном коде-сниппета:

  1. 1 не переменная в Ruby, это Fixnum и значения не могут быть отнесены к нему
  2. Вы должны поставить скобки вокруг url, чтобы превратить его в строку и присвоить ее переменной.
  3. Если вы не определили его, я уверен, что using не директива в Рубине

Изменить код на что-то вроде этого, и он должен, скорее всего, работать:

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, с которым вы можете продолжить работу.

+0

Извините, я был немного неряшлив при размещении кода там, я понял, что текст, который я написал вначале, не очень хорошо описывает проблему. Я отредактирую вопрос .... спасибо. – Christoffer

Смежные вопросы