2009-09-19 117 views
7

我正在創建RSS閱讀器應用程序。我需要得到任何鏈接的rss舊的項目。例如一些網絡rss結果計數太少。我的應用程序檢查時間範圍太長。有時會丟失一些消息。如何獲取RSS舊的項目,如谷歌閱讀器

如何獲取rss舊物品?

當在谷歌閱讀器上向下滾動時,閱讀器顯示前面的項目。

+0

咦?你是什​​麼意思「舊rss項目」? – 2009-09-19 16:41:13

+1

RSS總是返回最後一項。例如:認爲任何Web發佈200新聞。但是這個網絡rss返回20個結果(181..200)。我需要1..180個id的新聞。可能嗎?谷歌讀者如何工作? – ebattulga 2009-09-19 17:05:37

回答

12

我猜,Google會保存這些項目並顯示它們,即使它們不再位於Feed中。 Google Reader甚至可能會在添加Feed之前向您顯示項目,因爲這些Feed可能全局存儲,而不是每個用戶。

13

試試這個http://www.google.com/reader/atom/feed/ {完整的URL,而不到一個RSSFeed {}}?N = 5000

+0

+1你今天拯救了一個人的生命! – kamasheto 2012-09-09 18:21:28

+0

是的,但它迫使我登錄到谷歌,以檢索舊的rss。我怎樣才能以匿名方式使用它? – anticafe 2013-02-18 11:15:15

0

是的,@someone推薦的策略可以幫助這一點。在此基礎上擴展:

谷歌閱讀器非官方API可以讓你從feed中請求舊的項目,但是它會非常慢(如果你要求10000個項目),所以你應該問一次並緩存它在你身邊。

如果您需要超過10000〜20000,您可能會在Google服務器端超時。爲了解決這個問題,您可能每次都會要求1000或者其他東西(http://www.google.com/reader/atom/feed/),然後使用延續參數進行分頁。我從來沒有使用過這個,但它包含一個參數(c,用於延續),可以滿足您的需求。如此處所述(在'Atom set of items'部分中):

用於繼續處理的字符串。每個Feed不是返回所有項目,而只返回一定數量的項目。你會在atom feed中找到一個名爲continuation的字符串(名字gr:continuation)。只需將該字符串添加爲此參數的參數,即可檢索下一個項目。

還有一件事,您需要在使用該API之前登錄Google閱讀器。如果你想要的代碼,請檢查我的回答to this other question

希望它有幫助!

0

自從Google Reader在一年前關閉以來,如果您正在尋找替代產品,我建議您在Superfeedr處發佈。