He estado experimentando escribiendo mi propio lector de RSS. Puedo manejar el bit "analizar XML". Lo que me estoy quedando atascado es "¿Cómo puedo buscar publicaciones más antiguas?"
La mayoría de las fuentes RSS solo enumeran los 10-25 elementos más recientes en su archivo XML. ¿Cómo obtengo TODOS los elementos de un feed y no solo los más recientes?
La única solución que pude encontrar fue utilizar la API de Google Reader "no oficial", que sería algo así como
No quiero que mi aplicación dependa de Google Reader.
¿Hay alguna forma mejor? Me di cuenta de que en Blogger puedo hacer "? Start-index = 1 & max-results = 1000", y en WordPress puedo hacer "? Paged = 5". ¿Existe alguna forma general de obtener un feed RSS para que me proporcione todo, y no solo los elementos más recientes?
Respuestas:
Los feeds RSS / Atom no permiten recuperar información histórica. Depende del editor del feed proporcionarlo si lo desea, como en los ejemplos de blogger o wordpress que proporcionó anteriormente.
La única razón por la que Google Reader tiene más información es que la recordaba cuando apareció por primera vez.
Hay algo de información sobre algo como esto de lo que se habla como una extensión del protocolo ATOM , pero no sé si realmente se implementa en alguna parte.
fuente
Como se mencionan las otras respuestas aquí, es posible que un feed no proporcione datos de archivo, pero los elementos históricos pueden estar disponibles en otra fuente.
Wayback Machine de Archive.org tiene una API para acceder a contenido histórico, incluidos feeds RSS (si sus bots lo han descargado). Creé la herramienta web Backfeed que usa esta API para regenerar un feed que contiene elementos históricos concatenados. Si desea discutir la implementación en detalle, comuníquese con nosotros.
fuente
En mi experiencia con RSS, el feed se compila con los últimos X elementos donde X es una variable. Ciertos feeds pueden tener la lista completa, pero por el ancho de banda, la mayoría de los lugares probablemente se limitan a los últimos elementos.
La respuesta probable para el lector de Google que tiene la información anterior es que la está almacenando de lado para los usuarios más adelante.
fuente
Además de lo que dijo David Dean, los feeds RSS / Atom solo contendrán lo que el editor del feed tenga en ese momento y alguien necesitaría recopilar activamente esta información para tener información histórica. Básicamente, Google Reader estaba haciendo esto de forma gratuita y cuando interactuaba con él, podía recuperar esta información almacenada de los servidores de la base de datos de Google.
Ahora que han retirado el servicio, que yo sepa, tiene dos opciones. Debe comenzar a recopilar esta información de sus feeds de interés y almacenar los datos utilizando XML o algo similar, o puede pagar por estos datos de una de las empresas que venden este tipo de información de feeds archivada.
Espero que esta información ayude a alguien.
Seán
fuente
Otra posible solución que podría no haber estado disponible cuando se hizo la pregunta originalmente y no debería requerir ningún servicio específico.
fuente
Los estándares RSS / Atom no tienen formas de consultar artículos RSS más antiguos.
También estoy trabajando en un lector de RSS y decidí crear mi propio servicio de archivo RSS ( https://app.pub.center ). Es gratis usar la API REST. Cobramos dinero por notificaciones automáticas.
El servicio sondea diariamente su catálogo de canales RSS y almacena los artículos en caché. Luego, puede recuperar estos artículos en orden cronológico. Por ejemplo:
Página 1 de The Atlantic
https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=1
Página 2 de The Atlantic
https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=2
fuente
Todas las respuestas anteriores dependían más o menos de los servicios existentes para tener una copia de ese feed o del motor de feed para poder proporcionar elementos más antiguos de forma dinámica.
Sin embargo, hay otra forma, ciertamente proactiva y bastante teórica de hacerlo: deje que su lector de feeds use un proxy de almacenamiento en caché que entienda semánticamente los feeds RSS y / o Atom y los almacene en caché por elemento hasta tantos elementos como usted configure.
Si el lector de feeds no sondea los feeds con regularidad, el proxy podría obtener feeds conocidos basándose en el tiempo por sí solo para no perder un elemento en feeds altamente volátiles como el de User Friendly que tiene solo un elemento y cambia todos los días (o al menos solía hacerlo). Por lo tanto, si el feedreadere.g. se bloqueó o perdió la conexión de red mientras está ausente durante unos días, es posible que pierda elementos en la memoria caché de su lector de feeds. Tener el proxy para obtener esos feeds con regularidad (por ejemplo, de un centro de datos en lugar de su casa o en un servidor en lugar de una computadora portátil) le permite ejecutar fácilmente el lector de feeds solo en ese momento y cuando sin perder los elementos que se publicaron después de que su lector de feeds obtuvo los feeds. la última vez, pero rotó de nuevo antes de buscarlos la próxima vez.
A ese concepto lo llamo Semantic Feed Proxy y he implementado una implementación de prueba de concepto llamada sfp . Aunque no es mucho más que una prueba de concepto y no lo he desarrollado más. (Por lo tanto, estaría feliz con sugerencias para proyectos con ideas o propósitos similares. :-)
fuente