Как Google Reader получает каждый элемент в ленте RSS?
RSS-лента Slashdot http://rss.slashdot.org/Slashdot/slashdot. Если я загружу XML файл напрямую, я получаю только несколько сообщений с сегодняшнего дня. Однако, если я подписываюсь на канал в Google Reader и продолжаю прокручивать его в интерфейсе "бесконечного прокрутки", похоже, что я могу получить произвольное количество сообщений Slashdot из прошлого - возможно, я смогу получить каждый пост Slashdot?
- Как Google Reader извлекает неограниченное количество сообщений из RSS-канала?
- Как я могу сделать то же самое?
Ответы
Ответ 1
Google следует за одним экземпляром фида для всех его пользователей, поэтому они отслеживают и хранят статьи Slashdot, например, задолго до того, как начнется чтение нового подписчика.
Чтобы сделать то же самое, вам нужно будет регулярно проверять каналы RSS, которые вы хотите, и хранить любые уникальные статьи, которые вы находите локально.
Ответ 2
Я только что обнаружил, что если вы аутентифицированы, вы можете сделать что-то вроде:
http://www.google.com/reader/atom/feed/http://rss.slashdot.org/Slashdot/slashdot?n=100
чтобы получить произвольное количество результатов из фида.
Ответ 3
Они уже много лет индексируют Интернет, и хранят все, что они приходят. Итак, как только вы добавите ссылку "подписаться на эту" на свою страницу, искатель Google начнет индексировать эту страницу и сохранить ее.
Для RSS они также имеют преимущество в том, что несколько человек подписываются на один и тот же канал.
Итак, для вашего приложения я предлагаю решить это, сохраняя любые загруженные элементы локально, чтобы новые подписчики могли вернуться к моменту, когда первый пользователь подписался на этот канал. Это не даст вам неограниченного, но со временем это даст вам гораздо больший архив, чем только 20 последних предметов.
Ответ 4
Я построил архивную службу 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