1

Тема: Логика реализации антибаннера

Коллеги, приветствую !
Хочу для себя составить логику реализации анти-баннера для IE, а именно следующее:
Если мы будем иметь файл adblock.txt (если не ошибаюсь) с масками рекламных и порно сайтов, то как сделать так, чтобы элемент загружаемой страницы находящийся в списке adblock.txt не загружался, ну или хотя бы скрывался ?
Т.е. как определять адрес загрузки элементов страницы до её загрузки ?

может занести весь список в hosts и редиректить куда-нить в null ?

Времени не хватает... :-(

2 (изменено: Rumata, 2011-03-10 16:29:19)

Re: Логика реализации антибаннера

Анализируется контент страницы на соответствие существующих масок и удаляются положительные соответствия. Так работает Adblock Plus для ФФ. Легко отсекается "внешняя" реклама - загружаемые скрипты, флешки. Но встроенный рекламный контент загрузится и все-таки будет удален.

По этой причине в моем ФФ страницы с sourceforge корежатся - плагин нещадно вырезает внешние скрипты и стили (внешние как по сути так и внешние по отношению ко всему сайту в целом), а вносить сайт в список исключений лень.

( 2 * b ) || ! ( 2 * b )

3 (изменено: Евген, 2011-03-10 18:25:49)

Re: Логика реализации антибаннера

А-а-а-а....   можно ведь по свойству src узнать адрес загрузки элемента !!!  И полученный адрес сравнивать с adblock !!!
Правильно ?

Но как это сделать до загрузки страницы ???

Времени не хватает... :-(

4

Re: Логика реализации антибаннера

Зачем Вам это узнавать ДО загрузки? И как Вы это себе представляете?

Вот обычный алгоритм
1. вы запрашиваете страницу с сайта http://interesting
2. сервер обрабатывает запрос и отдает готовую страницу. При этом она содержит рекламные вставки вида http://advert/script.js, http://advert/images/80x25.gif
3. браузер отдает содержимое страницы антибаннерному плагину
4. он анализирует полученную страницу, сверяет с набором правил, находит, что правилу http://advert/* соответствуютрекламные вставки с сайта http://advert и вырезает их
5. после этого браузер показывает полученную страницу без рекламы с сайта http://advert

Если на сайте http://interesting будет присутствовать реклама http://cool-ad, но она не будет описана в списке правил, то данная реклама появится.

( 2 * b ) || ! ( 2 * b )

5

Re: Логика реализации антибаннера

т.е. загружаться будет всё, а то что будет "залётным материалом" тому подарить object.style.display="none"

Правильно ?

Времени не хватает... :-(

6

Re: Логика реализации антибаннера

Не совсем.

object.style.display="none"

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

"Залетному материалу" создается новое правило или модифицируется существующее чтобы обобщить на большее количество рекламных вставок. Продолжим на нашем примере. Пусть рекламный сайт реализует свою рекламу с помощью изображений вида http://cool-ad/images/80x25.gif. Видимо всю рекламу вида */images/80x25.gif можно отсечь одним этим правилом. То есть антибаннерный плагин после загрузки страницы будет анализировать на соответствие заданным шаблонам и удалять все элементы, ссылающиеся "наружу". Например, изображения <img .*?src=".+?\/images\/80x25\.gif"[^>]> будут просто вырезаны из текста страницы.

( 2 * b ) || ! ( 2 * b )

7 (изменено: Евген, 2011-03-10 20:58:19)

Re: Логика реализации антибаннера

т.е. obj.Removenode для "залётчиков" было бы правильнее ?

и дополнительно проверять у объектов obj.offsetwidth и obj.offsetheight на соответствие баннерным размерам

Времени не хватает... :-(

8

Re: Логика реализации антибаннера

ну вот несколько примеров со статистикой плагина Adblock Plus, который встроен в мой браузер ФФ (правило - кол-во попаданий)

pics.rbc.ru/*.swf? - 40
#DIV(class^=banner) - 6942
/opennet\.ru\/img\/(runnet|lanbilling3|samsung_line4|trinity_1)\.gif/ - 66
/opennet\.ru\/img\/(akado_1|securit7)\.swf/ - 0

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

( 2 * b ) || ! ( 2 * b )

9 (изменено: Евген, 2011-03-10 21:05:34)

Re: Логика реализации антибаннера

Жесть...
тем более что с RegExp я не успел подружиться...
а так охота что-нибудь своё сделать...

Времени не хватает... :-(

10

Re: Логика реализации антибаннера

http://simple-adblock.com/ поможет избавится от рекламы в МСИЕ.
http://erik.eae.net/playground/regexp/regexp.html частично поможет разобраться с регулярными выражениями.

( 2 * b ) || ! ( 2 * b )

11

Re: Логика реализации антибаннера

Спасибки
Буду штудировать...

Времени не хватает... :-(