Foros del Web » Programando para Internet » Ruby »

[SOLUCIONADO] Problema con RSS con Ruby

Estas en el tema de Problema con RSS con Ruby en el foro de Ruby en Foros del Web. Huuola a todos/as! Estoy pillando unos datos de una web (por el RSS) de noticias y tengo el siguiente problema. El RSS es algo así: ...
  #1 (permalink)  
Antiguo 12/09/2014, 17:45
 
Fecha de Ingreso: noviembre-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Exclamación Problema con RSS con Ruby

Huuola a todos/as!

Estoy pillando unos datos de una web (por el RSS) de noticias y tengo el siguiente problema.

El RSS es algo así:

Código XML:
Ver original
  1. <item>
  2.      <title>titulo de la noticia </title>
  3.      <description>descripción de la noticia </description>
  4.      <date>fecha</date>
  5.      <link>link noticia</link>
  6.  
  7. </item>

El tema es que hay etiquetas como por ejemplo link y title que si que las pilla bien pero en otras me da error de que no existen...

Utilizo el modulo rss de ruby igual que en la documentación:

http://ruby-doc.org/stdlib-2.0.0/libdoc/rss/rdoc/RSS.html

Alguien sabe a que puede ser debido? he utilizado para probar la gema feedjira y me pasa exactamente lo mismo

Gracias a todos/as de antemano.
  #2 (permalink)  
Antiguo 12/09/2014, 23:32
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: Problema con RSS con Ruby

¿Puedes ser un poco mas especifico en los que te da error?

Tambien pon un poco del código que usas para parsear el RSS.

Saludos
__________________
>> abimaelmartell.com
  #3 (permalink)  
Antiguo 14/09/2014, 10:07
 
Fecha de Ingreso: noviembre-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con RSS con Ruby

La etiqueta link y title me las pilla bien pero si le pido por ejemplo la imagen me sale esto:

undefined method `image' for #<RSS::Rss::Channel::Item:0x007f2244d85f28> (NoMethodError)

y la etiqueta dentro del "item" si que está y me pasa igual con otras etiquetas :(

el codigo es este:

Código PHP:
Ver original
  1. require 'rss'
  2. require 'open-uri'
  3.  
  4. open(url) do |rss|
  5.   feed = RSS::Parser.parse(rss)
  6.   puts "Title: #{feed.channel.title}"
  7.   feed.items.each do |item|
  8.     puts "Item: #{item.title}"
  9.   end

No solo me pasa con la etiqueta image, me pasa con otras. Pero hay rss de noticias de otras páginas que sí que me pilla todo bien y hay otras que muchas etiquetas no me las coge :(
  #4 (permalink)  
Antiguo 14/09/2014, 12:01
 
Fecha de Ingreso: noviembre-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con RSS con Ruby

He probado algunas gemas y me sale el mismo error con algunas etiquetas :(
  #5 (permalink)  
Antiguo 15/09/2014, 17:54
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: Problema con RSS con Ruby

puedes mostrar el XML con el que falla porfavor?
__________________
>> abimaelmartell.com
  #6 (permalink)  
Antiguo 16/09/2014, 05:10
 
Fecha de Ingreso: noviembre-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con RSS con Ruby

abimex te lo he pasado por privado. Gracias.
  #7 (permalink)  
Antiguo 16/09/2014, 10:59
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: Problema con RSS con Ruby

Ya lo vi, el problema es que el RSS es un standar, y en ese estandar no se especifica un campo 'image', y el parseador de RSS de ruby no carga el image dentro del objeto. Lo que tendras que hacer es parsear el XML utilizando otra gem, por ejemplo Nokogiri.


Busca como parsear un RSS con nokogiri y te salen buenos resultados.

Saludos
__________________
>> abimaelmartell.com
  #8 (permalink)  
Antiguo 16/09/2014, 17:44
 
Fecha de Ingreso: noviembre-2012
Mensajes: 8
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con RSS con Ruby

Muchas gracias con Nokogiri sí funciona

Etiquetas: rss
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:21.