Каков надежный способ проверить RSS-канал на наличие новых записей?

StackOverflow https://stackoverflow.com/questions/1502027

Вопрос

Часть приложения, которое я создаю, должна проверять RSS-каналы на наличие обновлений.Я ищу надежный способ узнать, есть ли в канале новые записи.

Я знаю, что иногда люди пишут сообщения в будущее, а затем в настоящее время, что может привести к скрытию некоторых записей.Похоже, что здесь могут быть и другие сложности.Я также знаю, что хеширование заголовка или контента приведет к снижению производительности и ненадежным результатам, поскольку они могут измениться и не являются признаком появления новых записей.И я знаю, что несколько лет назад, когда я вручную вел RSS-канал подкаста, я ни разу не менял этот элемент.

Итак, мне нужен какой-то способ надежно проверять каналы RSS, Atom и т. д. на наличие новых записей, поскольку они в последний раз проверялись.

В частности, это приложение будет написано на Python для Google App Engine с использованием Универсальный парсер каналов, но я сомневаюсь, что в данном случае это имеет слишком большое значение.

Это было полезно?

Решение

Вы можете использовать условное получение, добавив заголовок if-modified-since к вашему http-запросу.Серверы с хорошим поведением вернут 304 без изменений, если нет изменений.

Другие советы

Элементы фида имеют уникальный идентификатор и/или URL-адрес, который может быть уникальным.Хешируйте только их вместе, чтобы получить быстрый и разумный способ обнаружения изменений.Но единственный способ быть абсолютно уверенным — это хешировать контент, как вы сказали.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top