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
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?
Jawaban:
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.
sumber
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.
sumber
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.
sumber
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
sumber
Solusi potensial lain yang mungkin tidak tersedia saat pertanyaan awalnya diajukan dan tidak memerlukan layanan khusus apa pun.
sumber
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
sumber
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. :-)
sumber