Алгоритм проверки на изменение страницы.

ksnk

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

Итого - есть страничка с динамическими рекламами, банерами, ets. Нужно определить - изменилась ли она по сравнению с предыдущими "заходами". Изменение банеров и протч рекламы - не интресно...
У кого нибудь есть идеи?
Могут ли рекламные блоки быть разной длины от скачки к скачке? Если нет - можно автоматом строить map файл со смещениями "нерекламного" кода и смотреть изменения уже в нем. Если есть - надо бы аккуратно парсить HTML ...
 

ksnk

прохожий
Ну, к примеру - кнопка - "нифга не поменялось по сравнению с прошлым разом", реакцией на которую и будет анализ предыдушего и теперешнего скачиваний.
Совсем автомат, видимо, не надо.... Можно и "обучаемую"
 

vovanium

Новичок
Реклама разной бывает, локальная баннерка может спокойно вставлять абсолютно любой код баннера при каждом заходе на сайт, внешняя баннерка обычно ограничивается вставкой постоянного куска кода (JS, IFRAME и т.п.), но и в таком случае тоже возможна смена размера рекламного блока (банальный переход на другую баннерку), хотя и не от скачки к скачки. Поэтому лучше привязываться к каким-нибудь ключевым кускам HTML кода в который заключены нужные тебе данные.
 

ksnk

прохожий
vovanium
Задачу, видимо, стоит переформулировать...
Есть 2 HTML'я, про который известно, что они "одинаковы". Требуется выяснить - "одинаков" ли 3-й HTML :)
Пока только такое придумалось :
- парсим HTML в дерево и помечаем теги - "важные (не изменились)" или "неважные(изменились)". Следующий файл можно пропарсить в такое-же дерево и проверить "важные ветки".
bkonst
Ну, дык! :)
 

Dreammaker

***=Ф=***
Как идея - берём md5-хеш страницы при первом заходе, берём md5 хеш страницы при втором заходе.

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

p.s. Да здравствуют пиринговые сети подсказывающие нам идеи :)
 

ksnk

прохожий
vovanium
Для двух страниц с "одинаковым" содержимым теги с физически разным содержимым будут "неважными".

Dreammaker
Я про банеры не зря спрашивал! ...
 

SelenIT

IT-лунатик :)
ksnk
1. Обследуемая страничка твоя или чужая?
2. Как часто и отчего она может меняться?
 

Dreammaker

***=Ф=***
ksnk, ну тогда гы нейронные сети вообще идеально подходят :)
А если серъёзнее, то:

Вопрос: если текст остался тот же. а поменялся хтмл на странице, админ, например, вставил лишний <бр>.

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

[Gisma]

Новичок
;) вы еще контрольные суммы посчитайте
а вообще приглашайте меня в ваш академ-городок
 

vovanium

Новичок
ksnk
Для двух страниц с "одинаковым" содержимым теги с физически разным содержимым будут "неважными".
Так тебе же как раз нужно отслеживать изменение этого содержимого, насколько я понял, причем не обращая внимания на измения кодов баннеров?
 

white phoenix

Новичок
Я бы посмотрел в сторону вырезки регулярными выражениями мусора (рекламы и прочей хрени) + [m]similar_text[/m].
 

ksnk

прохожий
SelenIT
Страничка, в принципе, любая. Чекать, предположительно, раз в день.
Dreammaker
white phoenix
Проблема в том, чтобы "вычислить" эту самую рекламу.
vovanium
Две страницы объявляются "одинаковыми" пользователем. Для скрипта это будет значить, что все физически разные веточки "не важны" === содержат рекламу или несодержательную (с точки зрения того, кто "объявлял") информацию. При следующем чеке изменения в этих веточках - не смотреть.
 

Dreammaker

***=Ф=***
Логичный вопрос: это одна и таже страница или это разные страницы и алгоритм должен предусматривать "безболезненный" анализ любой страницы? Например, указали phpclub.ru, скрипт поанализировал, указали google.com - опять же проанализировал. То есть, чтобы программер не подстраивал код под каждую страницу..

Если второй вариант, то тут кажись без ИИ точно не обойтись, и моя шутка насчёт нейронных сетей перестаёт быть шуткой :)
 

ksnk

прохожий
Dreammaker
Страница - любая. И - ...
чтобы программер не подстраивал код под каждую страницу
Максимум реакции - нажатие на кнопку - "опять то-же самое"
Про ИИ шутку не понял :) я-же описал какой-то алгоритм с парсингом HTML'я в дерево и анализ веточек. До ИИ такой алгоритм, на мой взгляд, немного не дотягивает :), а задачу, вроде, решает...
 

SelenIT

IT-лунатик :)
Первое, что приходит в голову: тупо сравнивать тексты а-ля diff, различия выбрасывать, одинаковые части запоминать как значимые. При следующей автоматической проверке проверять наличие этих частей. При ручной проверке, если юзер опять сказал "то же самое" - снова выбрасывать отличия, тем самым уточняя границы значимой части.
Если необходимо, можно предварительно привести тексты к некоему "более стандартному" виду, например, заменить множественные пробелы на одиночные, "пострипать" малозначащие теги типа <font> и т.п.
 

kvf77

Red Devil
Я так понимаю данный топик подпадает под пункт "Взлом и кража контента" - его надо закрыть
 

zarus

Хитрожопый макак
Автор оригинала: kvf77
Я так понимаю данный топик подпадает под пункт "Взлом и кража контента" - его надо закрыть
Или под пункт "кеширование контента частопосещаемых сайтов, чтобы сэкономить на трафике провайдеру"...
 
Сверху