Обнаружение новых элементов в ленте RSS

Каков наилучший способ обнаружения при обновлении фида? Скажем, у меня есть приложение, которое проверяет канал каждые 15 минут. Как узнать, добавлен ли новый контент или нет? Для RSS, а также для каналов Atom.

Ответы

Ответ 1

Каждый элемент в RSS 2 и Atom имеет идентификатор GUID/ID, который может быть помечен как уникальный. Если он отмечен как уникальный, вы можете использовать его для идентификации элементов и сопоставления с предыдущими элементами.

Ответ 2

Проверьте поля Last-Modified и ETag ответа HTTP при запросе поля. Еще лучше используйте теги If-Modified-Since и If-None-Match в вашем запросе, и вы получите только ответ 304, если канал не был изменен. (см.: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)

Ответ 3

Я использую etags в моем проекте, вычисленный в сервлет-фильтре, как показано здесь http://www.infoq.com/articles/etags

Это будет работать для rss, atom или любого другого ресурса, размещенного на вашем веб-сервере.