Bagaimana Saya Mengambil Semua Item Lama di Umpan RSS?

117

Saya telah bereksperimen dengan menulis pembaca RSS saya sendiri. Saya bisa menangani bit "parse XML". Hal yang membuat saya mandek adalah "Bagaimana cara mengambil postingan lama?"

Sebagian besar umpan RSS hanya mencantumkan 10-25 item terbaru dalam file XML-nya. Bagaimana cara mendapatkan SEMUA item dalam sebuah feed, dan bukan hanya yang terbaru?

Satu-satunya solusi yang dapat saya temukan adalah menggunakan API Pustaka Google "tidak resmi", yang akan menjadi seperti

http://www.google.com/reader/atom/feed/http://fskrealityguide.blogspot.com/feeds/posts/default?n=1000

Saya tidak ingin membuat aplikasi saya bergantung pada Pustaka Google.

Apakah ada cara yang lebih baik? Saya perhatikan bahwa di Blogger, saya dapat melakukan "? Start-index = 1 & max-results = 1000", dan di WordPress saya dapat melakukan "? Paged = 5". Apakah ada cara umum untuk mengambil umpan RSS sehingga memberi saya segalanya, dan bukan hanya item terbaru?

pengguna14834
sumber
1
Bagi mereka yang tertarik, dokumen API Pembaca Tidak Resmi: code.google.com/p/google-reader-api/w/list
Nate Parsons
3
Apakah ada cara baru sejak pertanyaan ditanyakan sekitar 6 tahun yang lalu seperti Dosis makanan
shareef
Saya ingin melihat jawaban yang diperbarui untuk pertanyaan ini. Sangat mengecewakan jika tidak ada yang berubah dalam 8 tahun! Ini adalah satu-satunya perkembangan baru yang saya lihat: app.pub.center stackoverflow.com/questions/5761954/…
Jess Riedel

Jawaban:

65

RSS / Atom feeds tidak memungkinkan untuk mendapatkan kembali informasi historis. Terserah penerbit feed untuk menyediakannya jika mereka mau seperti pada contoh blogger atau wordpress yang Anda berikan di atas.

Satu-satunya alasan Pustaka Google memiliki lebih banyak informasi adalah karena ia mengingatnya sejak pertama kali muncul.

Ada beberapa informasi tentang hal seperti ini yang dibicarakan sebagai perpanjangan dari protokol ATOM , tetapi saya tidak tahu apakah itu benar-benar diterapkan di mana saja.

David Dean
sumber
10

Seperti yang disebutkan pada balasan lain di sini, sebuah feed mungkin tidak memberikan data arsip tetapi item historis mungkin tersedia dari sumber lain.

Mesin Wayback Archive.org memiliki API untuk mengakses konten historis, termasuk RSS feed (jika bot mereka telah mengunduhnya). Saya telah membuat alat web Backfeed yang menggunakan API ini untuk membuat kembali umpan yang berisi item historis yang digabungkan. Jika Anda ingin mendiskusikan penerapannya secara mendetail, silakan hubungi kami.

Quinn Comendant
sumber
3
Ups! Menemukannya. Tautan ini merinci ws-dl.blogspot.fr/2013/07/… Secara khusus, Anda akan melakukan sesuatu seperti web.archive.org/web/timemap/link/$url Terima kasih!
The1nk
8

Dalam pengalaman saya dengan RSS, umpan dikompilasi oleh X item terakhir di mana X adalah variabel. Feed tertentu mungkin memiliki daftar lengkap, tetapi demi bandwidth sebagian besar tempat cenderung membatasi hanya pada beberapa item terakhir.

Jawaban yang mungkin untuk pembaca google yang memiliki info lama, adalah menyimpannya di sisinya untuk pengguna nanti.

Rob Haupt
sumber
8

Lebih jauh dari apa yang dikatakan David Dean RSS / Atom feed hanya akan berisi apa yang dimiliki penerbit feed pada saat itu dan seseorang perlu secara aktif mengumpulkan informasi ini untuk mendapatkan informasi historis. Pada dasarnya Pustaka Google melakukan ini secara gratis dan ketika Anda berinteraksi dengannya, Anda dapat mengambil informasi yang disimpan ini dari server basis data Google.

Sekarang setelah mereka menghentikan layanan, sepengetahuan saya Anda memiliki dua pilihan. Anda harus mulai mengumpulkan informasi ini dari feed yang Anda minati dan menyimpan data menggunakan XML atau semacamnya, atau Anda dapat membayar data ini dari salah satu perusahaan yang menjual jenis informasi feed yang diarsipkan ini.

Saya harap informasi ini membantu seseorang.

Seán

Seán O'Sullivan
sumber
6

Solusi potensial lain yang mungkin tidak tersedia saat pertanyaan awalnya diajukan dan tidak memerlukan layanan khusus apa pun.

  1. Temukan URL RSS feed yang Anda inginkan dan gunakan waybackpack untuk mendapatkan url yang diarsipkan untuk feed itu.
  2. Gunakan FeedReader atau perpustakaan serupa untuk menarik RSS feed yang diarsipkan.
  3. Ambil URL dari setiap feed dan kikis sesuai keinginan. Jika Anda kembali ke masa lalu, mungkin ada beberapa tautan mati.
Alex Klibisz
sumber
Ini adalah saran yang brilian. Mesin Wayback memang mengarsipkan RSS feed juga. Ini tidak akan bekerja dengan pembaca umpan GUI, tetapi untuk pembaca terprogram, tidak terlalu merepotkan untuk menimpa permintaan web dan sebagai gantinya memberinya file RSS / Atom yang di-cache.
Cerin
@ Alex, Bisakah Anda menjelaskan dengan contoh? Saya menemukan saran Anda sangat menarik.
SanMelkote
2
@SanMelkote Saya belum memikirkan hal ini dalam waktu yang lama. Saya akan mencoba mengingat untuk menggali kode saya dan jika saya dapat menemukannya, saya akan mempostingnya sebagai inti github.
Alex Klibisz
2

Standar RSS / Atom tidak memiliki cara untuk menanyakan artikel RSS yang lebih lama.

Saya juga mengerjakan RSS reader dan memutuskan untuk membangun layanan arsip RSS saya sendiri ( https://app.pub.center ). Gratis untuk menggunakan REST API. Kami mengenakan biaya untuk pemberitahuan push.

Layanan harian ini mengumpulkan katalog dari RSS feed, dan menyimpan artikel dalam cache. Kemudian, Anda bisa mendapatkan artikel ini kembali dalam urutan kronologis. Sebagai contoh:

Halaman 1 dari The Atlantic https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=1

Halaman 2 dari The Atlantic https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=2

wle8300.dll
sumber
Terlihat menarik, tetapi tautannya mati.
bluenote10
2

Semua jawaban sebelumnya kurang lebih mengandalkan layanan yang ada untuk tetap memiliki salinan feed tersebut atau mesin feed untuk dapat menyediakan item lama secara dinamis.

Ada cara lain, yang diakui pro-aktif dan agak teoretis untuk melakukannya: Biarkan feedreader Anda menggunakan proxy cache yang secara semantik memahami RSS dan / atau Atom feed dan menyimpannya di basis per item hingga sebanyak item yang Anda konfigurasikan.

Jika feedreader tidak melakukan polling feed secara teratur, proxy dapat mengambil feed yang diketahui berdasarkan waktunya sendiri agar tidak melewatkan item dalam feed yang sangat mudah menguap seperti yang dari User Friendly yang hanya memiliki satu item dan berubah setiap hari (atau setidaknya dulu melakukannya). Oleh karena itu jika feedreadere.g. crash atau koneksi jaringan terputus saat Anda pergi selama beberapa hari, Anda mungkin kehilangan item di cache feedreader Anda. Memiliki proxy untuk mengambil feed tersebut secara teratur (misalnya dari pusat data bukan dari rumah atau di server alih-alih laptop) memungkinkan Anda untuk dengan mudah menjalankan feedreader hanya saat itu dan ketika tanpa kehilangan item yang diposting setelah feedreader Anda mengambil feed terakhir kali tetapi diputar lagi sebelum Anda mengambilnya di lain waktu.

Saya menyebutnya konsep Semantic Feed Proxy dan saya telah menerapkan bukti implementasi konsep yang disebut sfp . Meskipun tidak lebih dari sekedar bukti konsep dan saya belum mengembangkannya lebih jauh. (Jadi saya akan senang dengan petunjuk untuk proyek dengan ide atau tujuan serupa. :-)

Axel Beckert
sumber