program story

RSS 피드에서 모든 오래된 항목을 가져 오려면 어떻게합니까?

inputbox 2020. 7. 29. 08:11
반응형

RSS 피드에서 모든 오래된 항목을 가져 오려면 어떻게합니까?


내 RSS 리더 작성을 실험하고 있습니다. "XML 구문 분석"비트를 처리 할 수 ​​있습니다. 내가 붙어있는 것은 "오래된 게시물을 어떻게 가져 옵니까?"입니다.

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

내가 찾은 유일한 해결책은 "비공식"Google 리더 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 프로토콜확장 으로 이와 같은 이야기에 대한 정보가 있지만 실제로 어디에서 구현되는지는 알 수 없습니다.


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

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


David Dean이 말한 것 외에도 RSS / Atom 피드에는 해당 피드의 게시자가 보유한 내용 만 포함되며 누군가 과거 정보를 얻으려면이 정보를 적극적으로 수집해야합니다. 기본적으로 Google Reader는 무료 로이 작업을 수행했으며 상호 작용하면 Google 데이터베이스 서버에서 저장된 정보를 검색 할 수 있습니다.

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

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

세안


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

Archive.org의 Wayback Machine에는 RSS 피드 (봇이 다운로드 한 경우)를 포함하여 기록 컨텐츠에 액세스하는 API가 있습니다. 이 API를 사용하여 연결된 기록 항목이 포함 된 피드를 재생성하는 웹 도구 Backfeed작성했습니다 . 구현에 대해 자세히 논의하려면 연락하십시오.


질문을 처음 받았을 때 사용하지 못했을 수도 있고 특정 서비스가 필요하지 않은 다른 잠재적 솔루션.

  1. 원하는 RSS 피드의 URL을 찾고 waybackpack사용 하여 해당 피드에 대한 아카이브 된 URL을 가져 오십시오 .
  2. FeedReader 또는 유사한 라이브러리를 사용 하여 아카이브 된 RSS 피드를 풀다운하십시오.
  3. 각 피드에서 URL을 가져와 원하는대로 긁습니다. 시간을 거슬러 올라가면 연결이 끊어졌을 수 있습니다.

이전의 모든 답변은 기존 서비스에 의존하여 이전 피드를 동적으로 제공 할 수 있도록 해당 피드 또는 피드 엔진의 사본을 계속 가지고 있습니다.

피드 프레 더가 RSS 및 / 또는 Atom 피드를 의미 적으로 이해하고 구성한 항목 수만큼 항목별로 캐시하는 캐싱 프록시를 사용하도록하십시오.

피드 리더가 피드를 정기적으로 폴링하지 않으면 프록시는 자체 피드를 기반으로 알려진 피드를 가져 와서 매일 하나의 항목 만 있고 매일 변경되는 사용자 친화적 인 피드와 같이 변동성이 높은 피드의 항목을 놓치지 않을 수 있습니다. 그렇게하는 데 사용). 따라서 feedreadere.g. 며칠 동안 떨어져있는 동안 네트워크 연결이 중단되거나 끊어지면 피드 리더의 캐시에서 항목을 잃을 수 있습니다. 프록시가 피드를 정기적으로 가져 오도록 (예 : 집 대신 데이터 센터에서 또는 랩탑 대신 서버에서) 피드 리더가 가져온 피드를 가져온 후 게시 된 항목을 잃지 않고 언제라도 피드 리더를 쉽게 실행할 수 있습니다. 마지막 시간이지만 다음 번에 가져 오기 전에 다시 회전했습니다.

이 개념을 시맨틱 피드 프록시 라고하며 sfp라는 개념 증명 구현을 구현했습니다 . 그것은 개념 증명 이상의 것이 아니며 더 이상 개발하지 않았습니다. (그래서 비슷한 아이디어 나 목적을 가진 프로젝트에 대한 힌트에 기뻐할 것입니다. :-)


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

참고 URL : https://stackoverflow.com/questions/576552/how-do-i-fetch-all-old-items-on-an-rss-feed

반응형