Ich habe mit dem Schreiben meines eigenen RSS-Readers experimentiert. Ich kann mit dem Bit "XML analysieren" umgehen. Die Sache, an der ich hängen bleibe, ist "Wie hole ich ältere Beiträge?"
Die meisten RSS-Feeds listen nur die 10 bis 25 neuesten Elemente in ihrer XML-Datei auf. Wie erhalte ich ALLE Elemente in einem Feed und nicht nur die neuesten?
Die einzige Lösung, die ich finden konnte, war die Verwendung der "inoffiziellen" Google Reader-API
Ich möchte meine Anwendung nicht von Google Reader abhängig machen.
Gibt es einen besseren Weg? Ich habe festgestellt, dass ich in Blogger "? Start-index = 1 & max-results = 1000" und in WordPress "? Paged = 5" ausführen kann. Gibt es eine allgemeine Möglichkeit, einen RSS-Feed abzurufen, damit er mir alles bietet und nicht nur die neuesten Elemente?
Antworten:
RSS / Atom-Feeds ermöglichen nicht das Abrufen historischer Informationen. Es ist Sache des Herausgebers des Feeds, ihn bereitzustellen, wenn er dies wünscht, wie in den oben angegebenen Beispielen für Blogger oder WordPress.
Der einzige Grund, warum Google Reader mehr Informationen enthält, besteht darin, dass es sich an diese Informationen erinnert, als sie zum ersten Mal angezeigt wurden.
Es gibt einige Informationen zu so etwas, über die als Erweiterung des ATOM-Protokolls gesprochen wird , aber ich weiß nicht, ob es tatsächlich irgendwo implementiert ist.
quelle
Wie in den anderen hier erwähnten Antworten angegeben, enthält ein Feed möglicherweise keine Archivdaten, aber historische Elemente sind möglicherweise aus einer anderen Quelle verfügbar.
Die Wayback-Maschine von Archive.org verfügt über eine API für den Zugriff auf historische Inhalte, einschließlich RSS-Feeds (sofern diese von ihren Bots heruntergeladen wurden). Ich habe das Web-Tool Backfeed erstellt , das diese API verwendet, um einen Feed mit verketteten historischen Elementen neu zu generieren . Wenn Sie die Implementierung im Detail besprechen möchten, setzen Sie sich bitte mit uns in Verbindung.
quelle
Nach meiner Erfahrung mit RSS wird der Feed aus den letzten X Elementen zusammengestellt, wobei X eine Variable ist. Bestimmte Feeds enthalten möglicherweise die vollständige Liste, aber aus Gründen der Bandbreite beschränken sich die meisten Orte wahrscheinlich nur auf die letzten Elemente.
Die wahrscheinliche Antwort für Google Reader mit den alten Informationen ist, dass sie später für Benutzer auf der Seite gespeichert werden.
quelle
Zusätzlich zu dem, was David Dean sagte, enthalten die RSS / Atom-Feeds nur das, was der Herausgeber des Feeds zu diesem Zeitpunkt hat, und jemand müsste diese Informationen aktiv sammeln, um historische Informationen zu erhalten. Grundsätzlich tat Google Reader dies kostenlos und wenn Sie damit interagierten, konnten Sie diese gespeicherten Informationen von den Google-Datenbankservern abrufen.
Nachdem sie den Dienst eingestellt haben, haben Sie meines Wissens zwei Möglichkeiten. Sie müssen entweder mit der Erfassung dieser Informationen aus Ihren interessierenden Feeds beginnen und die Daten mithilfe von XML oder Ähnlichem speichern, oder Sie können diese Daten von einem der Unternehmen bezahlen, die diese Art von archivierten Feed-Informationen verkaufen.
Ich hoffe, diese Informationen helfen jemandem.
Seán
quelle
Eine weitere mögliche Lösung, die möglicherweise nicht verfügbar war, als die Frage ursprünglich gestellt wurde, und für die kein spezifischer Service erforderlich sein sollte.
quelle
Die RSS / Atom-Standards bieten keine Möglichkeit, ältere RSS-Artikel abzufragen.
Ich arbeite auch an einem RSS-Reader und habe beschlossen, einen eigenen RSS-Archivierungsdienst ( https://app.pub.center ) zu erstellen . Es ist kostenlos, die REST-API zu verwenden. Wir berechnen Geld für Push-Benachrichtigungen.
Der Dienst fragt täglich seinen Katalog mit RSS-Feeds ab und speichert die Artikel zwischen. Anschließend können Sie diese Artikel in chronologischer Reihenfolge zurückerhalten. Beispielsweise:
Seite 1 des Atlantiks
https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=1
Seite 2 des Atlantiks
https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=2
quelle
Alle vorherigen Antworten stützten sich mehr oder weniger auf vorhandene Dienste, um noch eine Kopie dieses Feeds oder der Feed-Engine zu haben, um ältere Elemente dynamisch bereitstellen zu können.
Es gibt jedoch eine andere, zugegebenermaßen proaktive und eher theoretische Möglichkeit, dies zu tun: Lassen Sie Ihren Feedreader einen Caching-Proxy verwenden, der RSS- und / oder Atom-Feeds semantisch versteht und sie auf Elementbasis bis zu so vielen Elementen zwischenspeichert, wie Sie konfigurieren.
Wenn der Feedreader Feeds nicht regelmäßig abfragt, kann der Proxy bekannte Feeds zeitabhängig abrufen, um einen Artikel in hochflüchtigen Feeds wie dem von User Friendly nicht zu verpassen, der nur einen Artikel enthält und sich täglich (oder zumindest) ändert verwendet, um dies zu tun). Wenn also der feedreadere.g. Wenn Sie während einiger Tage nicht erreichbar sind oder die Netzwerkverbindung unterbrochen haben, verlieren Sie möglicherweise Elemente im Cache Ihres Feedreaders. Wenn Sie den Proxy haben, um diese Feeds regelmäßig abzurufen (z. B. von einem Rechenzentrum statt von zu Hause oder auf einem Server anstelle eines Laptops), können Sie den Feedreader nur dann und dann problemlos ausführen, ohne Elemente zu verlieren, die nach dem Abrufen der Feeds durch Ihren Feedreader veröffentlicht wurden letztes Mal aber wieder herausgedreht, bevor Sie sie das nächste Mal holen.
Ich nenne dieses Konzept einen semantischen Feed-Proxy und habe eine Proof-of-Concept-Implementierung namens sfp implementiert . Es ist jedoch nicht viel mehr als ein Proof of Concept und ich habe es nicht weiterentwickelt. (Ich würde mich also über Hinweise zu Projekten mit ähnlichen Ideen oder Zwecken freuen. :-)
quelle