У меня есть искатель, который сканирует сотни тысяч страниц и индексирует/анализирует содержимое страницы, и одна вещь, с которой я борюсь, - это проверить, был ли контент страницы обновлен эффективным способом без необходимо выполнить сканирование и проверить содержимое страницы.Лучший способ проверить, было ли изменено содержимое страницы?
Очевидно, что я мог бы просто загрузить всю страницу и повторно проанализировать все и сравнить все с тем, что я хранил в своей базе данных. Однако это очень неэффективно и использует множество вычислений, что приводит к высоким хостинговым счетам.
Я думаю о сравнении хэшей, проблема в том, что если страница изменила один байт или символ, хеш будет другим. Так, например, если страница отображает текущую дату на странице, каждый раз хеш будет отличаться и скажите мне, что контент обновлен.
Итак ... Как вы это сделаете? Посмотрите на размер kb для HTML? Посмотрите на длину строки и проверьте, изменилась ли, например, длина более 5%, контент был «изменен»? Или есть какой-то алгоритм хэширования, где хэши остаются такими же, если изменены только небольшие части строки/содержимого?
ли 'заголовок последнего modified' (или, возможно,' ETag') надежной на сайте вы выскабливание Если это так, просто использовать, что – roippi
... и использовать HTTP-запрос 'HEAD'. Не простой« GET ». –
Im сканирует много разных доменов и сайтов, и мы также расширяем до новых доменов. Таким образом, надежный метод для всех доменов будет предпочтительнее. –