Как отмониторить изменение на страницах чужого сайта?

12
regta
На сайте с 15.04.2006
Offline
300
2497

Здравствуйте

Буду признателен за подсказку в таком вопросе:

Есть некий сайт (туроператор по отдельным видам отдыха). Там есть порядка 100 страниц, где изменения вносятся вручную менеджерами (как правило меняется цена в 1-2 местах страницы).

Процесс хаотичен и бессистемен. Менеджеры копипастят прям из ворда в общий textarea через визуальный редактор в админке. У 100 страниц - 10 менеджеров. И кто во что горазд. По времени также не определено - могут раз в день менять, могут и месяцами не вносить изменений.

И есть сайт агентства (которое должно поддерживать актуальные цены и у себя).

Вопрос - как агентство может отслеживать эти изменения и оперативно править на своем сайте?

Если:

- менеджерам оператора агентство до фонаря (т.е. никто в агентство сообщать не будет)

- парсинг маловероятен (изменения появляются хаотично в разных местах страницах, разными тегами обрамленные)

- ежедневный проход по всем 100 страницам оператора на предмет отлова изменений - также малореален.

Возможные варианты:

- скрипт отлова изменений страниц оператора (по дате изменения страницы? по весу страницы в байтах?) - если изменения есть, то сигнальный мейл агентству на почту

- все-таки настроить какой-нибудь суперсложный парсер по крону

---------------

Вот такая вот проблема

Буду признателен за идеи, как решить данную проблему. Спасибо.

Цитируйте, плиз, историю переписки в личке. Спасибо.
Z0
На сайте с 03.09.2009
Offline
759
#1

Если на странице есть общий тег, в котором меняется контент, то можно парсить и сравнивать с уже отпарщенным... 🍿

Я так пару раз цены парсил у конкурентов :)

regta
На сайте с 15.04.2006
Offline
300
#2
ziliboba0213:
Если на странице есть общий тег, в котором меняется контент

Нету, в том-то и беда.

Черте-что при копипасте из ворда в визуальный редактор у них получается - то span, то p, то b и т.п. С простынкой атрибутов каждый раз разной.

Z0
На сайте с 03.09.2009
Offline
759
#3
regta:

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

Это же вроде почти одно и тодже :)

---------- Добавлено 21.07.2016 в 22:21 ----------

regta:
Нету, в том-то и беда.

Черте-что при копипасте из ворда в визуальный редактор у них получается - то span, то p, то b и т.п. С простынкой атрибутов каждый раз разной.

Не, ну общий дизайн же у сайта есть, то есть должна быть область контента... Или там совсем все непонятно? Странно...

Если полная каша - сравнивайте весь html :)

regta
На сайте с 15.04.2006
Offline
300
#4

ziliboba0213, "ежедневный проход" имелось ввиду руками и глазами

Aisamiery
На сайте с 12.04.2015
Offline
293
#5

А в чем проблема не понимаю? Тащите страницу всю каким нибудь file_get_contents (PHP), запихиваете в md5 (PHP) и складываете все в базу вида url|hash

И парсите хоть каждые 5 минут, md5 быстрый алгоритм и не грузит железо, и сравнивайте хеши, изменился ли хэш или нет. Если изменился - шлите email

UPD: Есть более короткая запись md5-file

PS. Только используйте sleep чтоб не ложить сайт туроператора и запускайте из командной строки обернув все это в цикл, там (cli) обычно не ограничено время выполнения скрипта, и вот у вас уже "демон" болтается и следит за обновлениями. Можно пойти дальше и повесить мониторинг работы скрипта и если не работает перезапускать процесс :))

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
Z0
На сайте с 03.09.2009
Offline
759
#6
regta:
ziliboba0213, "ежедневный проход" имелось ввиду руками и глазами

Что-то я вас не очень понимаю, что я понял в данный момент:

Вам надо отследить изменения на 100 страницах.

Это делается парсером по хрону. Минут за 30 написать такое можно, наверное :) Если что-то на одной из страниц изменилось - та страница указывается (перезаписывается, посылается на email и т.п.)

Если я вас не понял - извините, я пиво пью, немного не в тонусе 🤪

L
На сайте с 07.12.2007
Offline
351
#7

regta, поковыряйте оператор daterange в Google. Новые страницы он отлично показывает, а вот изменившиеся - не уверена, надо проверить.

W
На сайте с 09.04.2013
Offline
46
#8

- Если сервер правильно настроен - то должен отдавать хедер 304,etag и пр.

- Можно создать хеш страницы и сравнивать

- Можно привязатся не к тегам , а непосредственно к тексту:

т.е. как ,например,пишут цены: 1000 р.|1000 рублей|1000 руб. - создаем регулярку

Если увидеть пациэнта , можно подсказать более конкретно.

regta
На сайте с 15.04.2006
Offline
300
#9

Спасибо за ответы. Но такой вопрос остался:

Если изменения произошли не в контентной части страницы, а скажем в шапке или левом меню (допустим верстку поправили или баннер какой запхнули)

То в этом случае, хэш конкретной страницы изменится? Дата изменения страницы - изменится? Как отделить эти ложные срабатывания?

Aisamiery
На сайте с 12.04.2015
Offline
293
#10
regta:
Спасибо за ответы. Но такой вопрос остался:

Если изменения произошли не в контентной части страницы, а скажем в шапке или левом меню (допустим верстку поправили или баннер какой запхнули)

То в этом случае, хэш конкретной страницы изменится? Дата изменения страницы - изменится? Как отделить эти ложные срабатывания?

Там в любом случае есть контентный блок, без сайдбаров, шапки и футера, хэшировать тогда только его. Ну или проверять, если сменились больше N хэшей подряд, то скорее всего изменился элемент дизайна/добавили ссылку/написали новость ну и так далее, то есть изменения прошли сразу на всех страницах. Вот тут надо просто понять допустимое значение N

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий