2008-10-21 3 views
23

Le flux RSS de Slashdot est http://rss.slashdot.org/Slashdot/slashdot. Si je télécharge le fichier XML directement, je ne reçois que quelques-uns des messages d'aujourd'hui. Cependant, si je m'abonne au flux de Google Reader et que je continue à défiler dans leur interface de «défilement infini», il me semble que je peux obtenir un nombre arbitraire de posts Slashdot du passé - peut-être que je peux obtenir tous les posts Slashdot?Comment Google Reader obtient-il tous les éléments d'un flux RSS?

  1. Comment Google Reader récupère-t-il un nombre illimité de publications à partir d'un flux RSS?
  2. Comment faire la même chose?
+1

, j'étais curieux de moi-même. – Anton

Répondre

19

Google suit une instance du flux pour tous ses utilisateurs, de sorte qu'ils ont suivi et stocké des articles Slashdot, par exemple, bien avant que tout nouvel abonné commence à lire. Pour faire de même, vous devrez interroger les flux RSS que vous voulez à intervalles réguliers et stocker tous les articles uniques que vous trouverez localement.

2

Ils indexent le Web depuis des années et stockent tout ce qu'ils contiennent. Ainsi, dès que vous ajouterez un lien "s'abonner à" à votre page, le robot google commencera à indexer cette page et à la stocker.

Pour RSS, ils ont également l'avantage d'avoir plusieurs personnes abonnées au même flux. Donc, pour votre application, je suggère de résoudre ce problème en enregistrant tous les éléments téléchargés localement, de sorte que les nouveaux abonnés peuvent revenir au moment où le premier utilisateur s'est abonné à ce flux. Il ne vous donnera pas illimité, mais avec le temps, il vous donnera une archive beaucoup plus grande que les 20 derniers articles.

13

Je viens de découvrir que si vous êtes authentifié, vous pouvez faire quelque chose comme:

http://www.google.com/reader/atom/feed/http://rss.slashdot.org/Slashdot/slashdot?n=100

pour obtenir un nombre arbitraire de résultats d'une alimentation.

+0

Maintenant, comment puis-je accéder à ce flux à partir d'un script python avec feedparser? Il est seulement possible d'obtenir les entrées de ce flux tout en étant connecté à google reader. Mais je ne sais pas comment me connecter à partir d'un script ... –

+1

@Rafael - Si vous êtes toujours à la recherche, voir cette question: http://stackoverflow.com/questions/52880/google-reader-api-unread- compter. Cela peut aider. –

+0

On dirait qu'une valeur peut atteindre 1000. Si vous donnez plus de 1000, seulement 1000 résultats sont retournés. –

1

J'ai créé un service d'archivage RSS qui fait ce dont vous parlez (https://app.pub.center). Tout le RSS est libre d'utiliser via REST. Si vous voulez des notifications push, vous devez passer à un plan payant.

Sondages quotidiens de PubCenter c'est le catalogue des flux RSS, et met en cache les articles. Ensuite, vous pouvez récupérer ces articles dans un ordre chronologique. Par exemple:

Page 1 de l'Atlantique https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=1

Page 2 de la Bonne question Atlantique https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=2