Эффективный способ проверить, изменилась ли страница (сохраняя при этом как можно меньше информации)?

У меня есть несколько веб-страниц, по которым я собираю данные с течением времени. Меня не интересует сам контент, просто изменилась ли страница.

Сейчас я использую Python requests.get для получения страницы, хэширования страницы (md5) и хранения этого хэш-значения для сравнения в будущем.

Есть ли для этого более дешевая в вычислительном отношении или менее емкая стратегия хранения? Сейчас все работает; я просто хотел проверить, есть ли лучший/дешевый способ. :)

Вы можете отслеживать дату последней полученной версии и использовать заголовок If-Modified-Since в своем запросе. Однако некоторые ресурсы игнорируют этот заголовок. (В целом, его трудно использовать для динамически генерируемого контента). В этом случае вам'придется вернуться к менее эффективному методу.

Комментарии (1)
Решение

Наиболее надежным источником обнаружения изменений будет хэш. Я бы использовал CRC32. Это всего 32 бита по сравнению со 128 битами для md5. Кроме того, даже в браузерном Javascript он может быть очень быстрым. У меня есть личный опыт в улучшении скорости для JS-реализации CRC32 для очень больших наборов данных.

Комментарии (1)