Tenho experimentado escrever meu próprio leitor RSS. Posso lidar com a parte "analisar XML". O que estou prendendo é "Como faço para buscar postagens mais antigas?"
A maioria dos feeds RSS lista apenas os 10-25 itens mais recentes em seu arquivo XML. Como obtenho TODOS os itens em um feed, e não apenas os mais recentes?
A única solução que consegui encontrar foi usar a API "não oficial" do Google Reader, que seria algo como
Não quero tornar meu aplicativo dependente do Google Reader.
Existe alguma maneira melhor? Percebi que no Blogger posso fazer "? Start-index = 1 & max-results = 1000" e no WordPress posso fazer "? Paged = 5". Existe alguma maneira geral de buscar um feed RSS para que ele me forneça tudo, e não apenas os itens mais recentes?
Respostas:
Os feeds RSS / Atom não permitem a recuperação de informações históricas. É responsabilidade do editor do feed fornecê-lo, se desejar, como no blog ou nos exemplos de wordpress que você deu acima.
O único motivo pelo qual o Google Reader tem mais informações é que ele se lembrou de quando foi exibido pela primeira vez.
Existem algumas informações sobre algo como este falado como uma extensão do protocolo ATOM , mas não sei se realmente está implementado em algum lugar.
fonte
Como as outras respostas aqui mencionadas, um feed pode não fornecer dados de arquivamento, mas itens históricos podem estar disponíveis em outra fonte.
O Wayback Machine do Archive.org tem uma API para acessar conteúdo histórico, incluindo feeds RSS (se seus bots o baixaram). Criei a ferramenta da web Backfeed que usa essa API para gerar novamente um feed que contém itens históricos concatenados. Se você quiser discutir a implementação em detalhes, entre em contato.
fonte
Na minha experiência com RSS, o feed é compilado pelos últimos X itens, onde X é uma variável. Certos feeds podem ter a lista completa, mas, por motivos de largura de banda, a maioria dos lugares provavelmente se limita apenas aos últimos itens.
A resposta provável para o Google Reader ter as informações antigas é que ele as está armazenando ao lado para os usuários mais tarde.
fonte
Além do que David Dean disse, os feeds RSS / Atom conterão apenas o que o editor do feed tem no momento e alguém precisaria coletar ativamente essas informações para ter qualquer informação histórica. Basicamente, o Google Reader fazia isso de graça e quando você interagia com ele, você podia recuperar essas informações armazenadas dos servidores de banco de dados do Google.
Agora que aposentaram o serviço, que eu saiba, você tem duas opções. Você tem que começar a coleta dessas informações de seus feeds de interesse e armazenar os dados usando XML ou algo parecido, ou você pode pagar por esses dados de uma das empresas que vendem esse tipo de informações de feed arquivadas.
Espero que esta informação ajude alguém.
Seán
fonte
Outra solução potencial que pode não estar disponível quando a pergunta foi feita originalmente e não deve exigir nenhum serviço específico.
fonte
Os padrões RSS / Atom não têm meios de consultar artigos RSS mais antigos.
Também estou trabalhando em um leitor de RSS e decidi construir meu próprio serviço de arquivamento RSS ( https://app.pub.center ). O uso da API REST é gratuito. Cobramos dinheiro para notificações push.
O serviço pesquisa diariamente seu catálogo de feeds RSS e armazena os artigos em cache. Em seguida, você pode colocar esses artigos de volta em ordem cronológica. Por exemplo:
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
fonte
Todas as respostas anteriores dependiam mais ou menos dos serviços existentes para ainda ter uma cópia desse feed ou do mecanismo de feed para poder fornecer itens mais antigos dinamicamente.
Porém, há outra maneira, reconhecidamente pró-ativa e bastante teórica de fazer isso: deixe seu feedreader usar um proxy de cache que semanticamente entende RSS e / ou Atom feeds e os armazena em cache por item até tantos itens quanto você configurar.
Se o feedreader não pesquisar feeds regularmente, o proxy pode buscar feeds conhecidos com base em seu próprio tempo para não perder um item em feeds altamente voláteis como o de User Friendly que tem apenas um item e muda todos os dias (ou pelo menos costumava fazer isso). Portanto, se o feedreadere.g. travou ou perdeu a conexão de rede enquanto você estava ausente por alguns dias, você pode perder itens no cache do leitor de feed. Ter o proxy para buscar esses feeds regularmente (por exemplo, de um data center em vez de em casa ou em um servidor em vez de um laptop) permite que você execute facilmente o feedreader somente então e quando sem perder os itens que foram postados após seu feedreader ter obtido os feeds da última vez, mas girou novamente antes de buscá-los na próxima vez.
Eu chamo esse conceito de Semantic Feed Proxy e implementei uma implementação de prova de conceito chamada sfp . Embora não seja muito mais do que uma prova de conceito, não o desenvolvi mais. (Eu ficaria feliz com dicas para projetos com ideias ou propósitos semelhantes. :-)
fonte