Как Google Reader получает каждый элемент в RSS-канале?
-
03-07-2019 - |
Вопрос
RSS-канал Slashdot http://rss.slashdot.org/Slashdot/slashdot.Если я загружу XML-файл напрямую, я получу только несколько сообщений за сегодняшний день.Однако, если я подпишусь на канал в Google Reader и продолжу прокручивать вниз в их интерфейсе «бесконечной прокрутки», кажется, что я могу получить произвольное количество сообщений Slashdot из прошлого - может быть, я смогу получить все сообщения Slashdot за всю историю?
- Как Google Reader извлекает неограниченное количество сообщений из RSS-канала?
- Как я могу сделать то же самое?
Решение
Google следит за одним экземпляром канала для всех своих пользователей, поэтому они отслеживают и хранят статьи Slashdot, например, задолго до того, как любой новый подписчик начнет читать.
Чтобы сделать то же самое, вам нужно будет регулярно опрашивать нужные RSS-каналы и сохранять любые уникальные статьи, которые вы найдете локально.
Другие советы
Я только что обнаружил, что если вы аутентифицированы, вы можете сделать что-то вроде:
http: //www.google.com/reader/atom/feed/http://rss.slashdot.org/Slashdot/slashdot?n=100 р>
чтобы получить произвольное количество результатов из канала.
Они индексируют Интернет в течение многих лет и сохраняют все, к чему приходят.Поэтому в тот момент, когда вы добавите ссылку «подписаться на это» на свою страницу, сканер Google начнет индексировать эту страницу и сохранит ее.
Что касается RSS, у них также есть преимущество, заключающееся в том, что на один и тот же канал подписывается несколько человек.
Поэтому для вашего приложения я предлагаю решить эту проблему, сохраняя все загруженные элементы локально, чтобы новые подписки могли вернуться к моменту времени, когда первый пользователь подписался на этот канал.Он не даст вам безграничных возможностей, но со временем он предоставит вам гораздо больший архив, чем просто 20 последних элементов.
Я создал службу архивирования RSS, которая делает то, о чем вы говорите ( https://app.pub.center а>). Все RSS бесплатно использовать через REST. Если вам нужны push-уведомления, вам нужно перейти на платный тариф.
PubCenter ежедневно опрашивает свой каталог RSS-каналов и кэширует статьи. Затем вы можете получить эти статьи обратно в хронологическом порядке. Например:
Страница 1 из Атлантики https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=1
Страница 2 из Атлантики https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=2