Как определить, была ли изменена веб-страница? - PullRequest
1 голос
/ 13 мая 2011

Я знаю, что могу проверить значение «последнего изменения» заголовка ответа, чтобы определить, когда веб-страница была изменена в последний раз, но во многих случаях этот заголовок НЕ предоставляется. Кроме того, во многих случаях сам контент не изменился, но текущее время / дата отображаются на странице, что создает видимость модификации.

Любые предложения о том, как преодолеть вышеуказанные проблемы и определить, действительно ли веб-страница была (действительно) изменена?

Спасибо.

Ответы [ 3 ]

1 голос
/ 13 мая 2011

Конечно. Определите для себя, что считается «модификацией» (например, только вещи в div «content»), и посмотрите только на это.

Если , вы не можете найти способ решить, было ли что-то изменено, тогда вы не можете ожидать, что компьютер ...

0 голосов
/ 13 мая 2011

Вы задаете два вопроса здесь:

  1. Когда это было изменено?
  2. Был ли он модифицирован?

Чтобы ответить на вопрос № 1, вам нужно будет периодически проверять страницу, чтобы удовлетворить ваши требования по гранулярности, например, каждый час, каждый день, каждую неделю и т. д. Это может быть довольно ресурсоемким. Это будет зависеть от того, действительно ли вам нужно это знать.

Чтобы ответить на вопрос №2, вам нужно что-то сравнить. Вы можете сделать то, что предложил @Paul Rosnia, но если они добавят запятую, она будет считаться измененной.

Тогда вы также можете посмотреть, что было изменено. Затем вам нужно будет сохранить содержимое и сравнить его друг с другом, чтобы выделить изменения.

Вы можете использовать http://php.net/manual/en/function.file-get-contents.php и задание CRON для кэширования страницы на вашем сервере, а затем периодически сравнивать ваш кэш. Сравнивающая часть будет сложной, так как вы должны написать специальный код, чтобы игнорировать вещи, которые для вас не важны, например. отметка даты / времени, изменения заголовка, изменения меню и т. д.

0 голосов
/ 13 мая 2011

Надежный способ обнаружить изменения страницы - это загрузить и проверить ее.Если контрольная сумма изменяется, страница была отредактирована (с очень высокой достоверностью).

Вот пример, который работает в командной строке:

curl -s news.ycombinator.com | md5   #=> d86582bec138c051b0d8322f7823a23c

Это было несколько минут назад.Если вы запустите его сейчас, вы получите другой ответ!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...