[rss] RSS 피드에서 이전 항목을 모두 가져 오려면 어떻게합니까?

나는 내 자신의 RSS 리더를 작성하는 실험을 해왔다. “XML 구문 분석”비트를 처리 할 수 ​​있습니다. 내가 꼼짝 못하는 것은 “이전 게시물을 어떻게 가져 오나요?”입니다.

대부분의 RSS 피드는 XML 파일에 가장 최근 항목 10-25 개만 나열합니다. 가장 최근 항목뿐만 아니라 피드의 모든 항목을 가져 오려면 어떻게해야 합니까?

내가 찾을 수있는 유일한 해결책은 “비공식”Google Reader API를 사용하는 것이 었습니다.

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

내 애플리케이션을 Google 리더에 종속시키고 싶지 않습니다.

더 좋은 방법이 있습니까? Blogger에서는 “? start-index = 1 & max-results = 1000″을 수행 할 수 있고 WordPress에서는 “? paged = 5″를 수행 할 수 있습니다. RSS 피드를 가져 와서 가장 최근 항목뿐만 아니라 모든 것을 제공하는 일반적인 방법이 있습니까?



답변

RSS / Atom 피드는 기록 정보 검색을 허용하지 않습니다. 위에서 제공 한 블로거 또는 워드 프레스 예제에서와 같이 원하는 경우 피드를 제공하는 것은 피드 게시자에게 달려 있습니다.

Google 리더가 더 많은 정보를 가지고있는 유일한 이유는 처음 나올 때부터 기억했기 때문입니다.

ATOM 프로토콜확장으로 언급 된 이와 같은 정보가 있지만 실제로 어디에서나 구현되었는지는 모르겠습니다.


답변

여기에 언급 된 다른 답변과 같이 피드는 보관 데이터를 제공하지 않을 수 있지만 이전 항목은 다른 소스에서 사용할 수 있습니다.

Archive.org의 Wayback Machine에는 RSS 피드 (봇이 다운로드 한 경우)를 포함한 기록 콘텐츠에 액세스 할 수있는 API가 있습니다. 이 API를 사용하여 연결된 기록 항목이 포함 된 피드를 다시 생성하는 웹 도구 Backfeed 를 만들었습니다 . 구현에 대해 자세히 논의하고 싶으시면 연락 주시기 바랍니다.


답변

RSS에 대한 내 경험상 피드는 X가 변수 인 마지막 X 항목으로 컴파일됩니다. 특정 피드에는 전체 목록이있을 수 있지만 대역폭을 위해 대부분의 장소는 마지막 몇 개의 항목으로 만 제한 될 수 있습니다.

오래된 정보를 가지고있는 구글 리더에 대한 대답은 나중에 사용자를 위해 옆에 저장한다는 것입니다.


답변

데이비드 딘 (David Dean)이 말한 것 외에도 RSS / Atom 피드에는 해당 시점에 피드 게시자가 보유한 정보 만 포함되며 누군가는이 정보를 적극적으로 수집해야 이전 정보를 얻을 수 있습니다. 기본적으로 Google 리더는이 작업을 무료로 수행했으며 상호 작용할 때 Google 데이터베이스 서버에서 저장된 정보를 검색 할 수 있습니다.

이제 그들이 서비스를 중단 했으므로 내가 아는 한 두 가지 선택이 있습니다. 관심있는 피드에서이 정보 수집을 시작하고 XML 등을 사용하여 데이터를 저장해야합니다. 또는 이러한 유형의 보관 된 피드 정보를 판매하는 회사 중 하나에서이 데이터에 대해 비용을 지불 할 수 있습니다.

이 정보가 누군가에게 도움이되기를 바랍니다.

Seán


답변

원래 질문을 받았을 때 사용할 수 없었던 또 다른 잠재적 솔루션이며 특정 서비스가 필요하지 않아야합니다.

  1. 원하는 RSS 피드의 URL을 찾고 waybackpack 을 사용 하여 해당 피드에 대한 보관 된 URL을 가져옵니다.
  2. FeedReader 또는 유사한 라이브러리를 사용 하여 보관 된 RSS 피드를 가져옵니다.
  3. 각 피드에서 URL을 가져와 원하는대로 긁어냅니다. 시간을 거슬러 올라가면 죽은 링크가있을 수 있습니다.

답변

RSS / Atom 표준에는 이전 RSS 기사를 쿼리하는 방법이 없습니다.

또한 RSS 리더를 작업 중이며 자체 RSS 보관 서비스 ( https://app.pub.center ) 를 구축하기로 결정했습니다 . REST API를 사용하는 것은 무료입니다. 푸시 알림에 대해 비용을 청구합니다.

이 서비스는 매일 RSS 피드 카탈로그를 폴링하고 기사를 캐시합니다. 그런 다음 이러한 기사를 시간순으로 되돌릴 수 있습니다. 예를 들면 :

대서양 페이지 1 https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=1

대서양 2 페이지 https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=2


답변

이전의 모든 답변은 이전 항목을 동적으로 제공 할 수있는 피드 또는 피드 엔진의 사본을 보유하기 위해 기존 서비스에 어느 정도 의존했습니다.

인정할 수있는 또 다른 이론적 인 방법이 있습니다. 피드 리더가 RSS 및 / 또는 Atom 피드를 의미 론적으로 이해하는 캐싱 프록시를 사용하고 구성한만큼 항목별로 캐시합니다.

피드 리더가 정기적으로 피드를 폴링하지 않는 경우 프록시는 자체적으로 알려진 피드를 시간 기반으로 가져 와서 하나의 항목 만 있고 매일 (또는 적어도 사용). 따라서 feedreadere.g. 며칠 동안 자리를 비운 상태에서 네트워크 연결이 끊어 지거나 끊어지면 feedreader의 캐시에있는 항목이 손실 될 수 있습니다. 이러한 피드를 정기적으로 가져 오는 프록시를 사용하면 (예 : 집에서 대신 데이터 센터에서 또는 랩톱 대신 서버에서) Feedreader가 피드를 가져온 후 게시 된 항목을 잃지 않고도 피드 리더를 쉽게 실행할 수 있습니다. 지난 번에 다시 가져 왔지만 다음에 가져 오기 전에 다시 회전했습니다.

저는이 개념을 시맨틱 피드 프록시 라고 부르고 sfp라는 개념 증명 구현을 구현했습니다 . 그것은 개념 증명에 지나지 않으며 더 이상 개발하지 않았습니다. (그래서 비슷한 아이디어 나 목적을 가진 프로젝트에 대한 힌트에 만족합니다. 🙂