November 3, 2010

Cargar ítems antíguos de un feed RSS

Hace poco un amigo planteó la siguiente duda: “¿Cómo se puede consultar ítems antíguos en un feed RSS?”.

En principio la respuesta sería “No se puede”.

No se puede porque en el nivel más bajo un feed es simplemente una porción de software que escupe código XML (como este muy simple: RSS Generator) y en general no se incluye ningún tipo de parámetros de consulta, pues no hay un estándar que lo requiera.

Sin embargo, en Google Reader uno puede hacer scroll hacia abajo y al pasar el último ítem vemos como se cargan unos cuantos más debajo de éste, y si seguimos se puede ver como se cargan más, y así. ¿Cómo hace para conocer posts anteriores?

La respuesta es sencilla: Google sabe todo. Bueno, no todo, pero sabe mucho. Otro que sabe mucho es Stackoverflow, donde encontramos la explicación más factible: Google tiene cada ítem indexado, cuando uno solicita más, simplemente trae lo que tiene en el archivo. Es por eso que el scroll parece infinito, pero solo va hasta el primer ítem que indexó.

Una posible manera de obtener ítems antíguos entonces es utilizando Google Reader, formando una URL de este tipo: http://www.google.com/reader/atom/feed/[FEED_URL]?n=[ITEMS]

Donde [FEED_URL] es la URL del feed y [ITEMS] es la cantidad de ítems que queremos traer del archivo. Por ejemplo: http://www.google.com/reader/atom/feed/http://tedelmecanico.com/feed?n=50

Como dato aparte, existen borradores para el formato ATOM, que incluye paginado y archivo de ítems. Podes ver la especificación aquí: http://tools.ietf.org/html/rfc5005.

Enlaces