Как определить, была ли модифицирована веб -страница

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

  •  22-09-2019
  •  | 
  •  

Вопрос

У меня есть снимки нескольких веб -страниц, взятых в 2 раз. Что является надежным методом определения того, какие веб -страницы были изменены?

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

В идеале я ищу решение Python, но интуитивно понятный алгоритм также был бы отличным.

Спасибо!

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

Решение

Ну, сначала вам нужно решить, что такое шум, а что нет. Вы можете использовать HTML -анализатор Beautifulsoup Чтобы удалить шум, довольно напечатать результат и сравнить его как строку.

Если вы ищете автоматическое решение, вы можете использовать difflib.SequenceMatcher Чтобы рассчитать различия между страницами, вычислить сходство и сравните его с порогом.

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

Решение действительно зависит, если вы царапаете конкретный сайт или пытаетесь создать программу, которая будет работать на любой сайт.

Вы можете увидеть, какие области меняются, часто делая что -то вроде этого:

 diff <(curl http://stackoverflow.com/questions/) <(sleep 15; curl http://stackoverflow.com/questions/)

Если вы беспокоитесь только о одном сайте, вы можете создать некоторые выражения SED, чтобы отфильтровать такие вещи, как марки времени. Вы можете повторить, пока не будет показана разница для небольших полей.

Общая проблема намного сложнее, и я бы посоветовал сравнить общее количество слов на странице для начинающих.

Что-то типа Левенштейн расстояние Может пригодиться, если вы установите порог изменений на расстояние, которые игнорировали правильное количество шума для вас.

Просто сделайте снимки файлов с помощью MD5 или SHA1 ... если значения различаются в следующий раз, когда вы проверяете, то они изменены.

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