Автор |
Сообщение |
prosecutor
Newbee

Зарегистрирован: 31.08.2010
Сообщения: 6
Откуда: Украина, Луганск
|
1 пример:
Код: |
<div id="xxx" class="xxx" style="xxx">content</div> |
1 пример я убиваю след. фильтром:
Код: |
<div id="$LST(kill-by-id)"*>$INEST(<div*>,</div>)</div> |
2 пример:
Код: |
<div class="xxx" id="xxx" style="xxx">content</div> |
2 пример 1 фильтр не убивает, пробовал разные модификации фильтра ниче не получается, может кто что подскажет
$LST(kill-by-id) - список ID
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
Alex Qwerty
Gold Member

Зарегистрирован: 20.07.2007
Сообщения: 206
|
|
К началу |
Профиль Сообщение |
 |
prosecutor
Newbee

Зарегистрирован: 31.08.2010
Сообщения: 6
Откуда: Украина, Луганск
|
Сделал такой фильтр
Код: |
<div[^>]++id="$LST(kill-by-id)"*>$INEST(<div*>,</div>)</div>
|
Пока работает нгормально, спасибо за помощь
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Вах, кто-то использует $INEST()!
Продолжу вариант Alex Qwerty:
<div[^>]++ id=$AV($LST(kill-by-id)) [^>]+>
Ну или тот же NEST:
$NEST(<div\s,*id=$AV($LST(kill-by-id))*,>)
|
|
|
К началу |
Профиль Сообщение |
 |
prosecutor
Newbee

Зарегистрирован: 31.08.2010
Сообщения: 6
Откуда: Украина, Луганск
|
chAlx писал(а): |
Вах, кто-то использует $INEST()!
Продолжу вариант Alex Qwerty:
<div[^>]++ id=$AV($LST(kill-by-id)) [^>]+>
Ну или тот же NEST:
$NEST(<div\s,*id=$AV($LST(kill-by-id))*,>) |
Да, но эти фильтры ищут только начало тега, а мне надо убить весь болк с содержимым поэтому я и использовал $INEST()
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
prosecutor
Newbee

Зарегистрирован: 31.08.2010
Сообщения: 6
Откуда: Украина, Луганск
|
chAlx писал(а): |
Вах, кто-то использует $INEST()!
Продолжу вариант Alex Qwerty:
<div[^>]++ id=$AV($LST(kill-by-id)) [^>]+>
Ну или тот же NEST:
$NEST(<div\s,*id=$AV($LST(kill-by-id))*,>) |
У меня получилься вот такой фильтр
Код: |
<div[^>]++ id=$AV($LST(kill-by-id)) [^>]+>*</div> |
Буду тестировать на разных сайтах смотреть что режет а что нет
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
prosecutor
Newbee

Зарегистрирован: 31.08.2010
Сообщения: 6
Откуда: Украина, Луганск
|
Этот фильтр пока работает стабильнее всех остальных
Код: |
<div[^>]++id="$LST(kill-by-id)"*>$INEST(<div*>,</div>)</div> |
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
prosecutor писал(а): |
эти фильтры ищут только начало тега, а мне надо убить весь болк с содержимым поэтому я и использовал $INEST() |
Да, это код для корректной обработки только открывающего тега. А дальше всё так же: лучше $INEST() сложно что-то придумать.
Цитата: |
Этот фильтр пока работает стабильнее всех остальных |
Ну, вот типичный ;) код для проверки:
Код: |
<div name="forward>>>"
id=BAD_ID_FROM_BLOCKLIST
style= 'border:100px solid red'>
Click here>>>LINK
</div> |
|
|
|
К началу |
Профиль Сообщение |
 |
prosecutor
Newbee

Зарегистрирован: 31.08.2010
Сообщения: 6
Откуда: Украина, Луганск
|
chAlx писал(а): |
prosecutor писал(а): |
эти фильтры ищут только начало тега, а мне надо убить весь болк с содержимым поэтому я и использовал $INEST() |
Да, это код для корректной обработки только открывающего тега. А дальше всё так же: лучше $INEST() сложно что-то придумать.
Цитата: |
Этот фильтр пока работает стабильнее всех остальных |
Ну, вот типичный ;) код для проверки:
Код: |
<div name="forward>>>"
id=BAD_ID_FROM_BLOCKLIST
style= 'border:100px solid red'>
Click here>>>LINK
</div> |
|
Получается след. фильтр из всех что я перепробовал
Код: |
$NEST(<div\s,*id=$AV($LST(kill-by-id))*,>)$INEST(<div*>,</div>)</div> |
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
SergS
Member

Зарегистрирован: 02.02.2011
Сообщения: 58
|
как раз парюсь с этим ) пробую разобраться в проксомитроне
поправте если что, позязя
просматривает класс и id. в одном из двух точно будет нужное слово )
Код: |
Name = "Kill DIV(id or class)"
Active = TRUE
Bounds = "$NEST(<DIV(\s*|)>,</DIV>)"
Limit = 2048
Match = "*(id|class)=$AV($LST(DIV_Off-RE))*"
Replace = "<font size=3 color=red> Block DIV tag in \1 </font>" |
пример из DIV_Off-RE.lst
Код: |
MarketGid*
*informer*
*footer*
*counter*
toget*
ad*|*ad
*reklama*
*bann* |
на сайтах, обычно по названиям не отличаются. (*counter* - наверное лучше убрать, хотя.)
до этого пробовал так:
Код: |
Name = "Kill DIV(id or class)"
Active = TRUE
Limit = 1024
Match = "$NEST(<DIV*(id|class)=$AV($LST(DIV_Off-RE))\2>,</DIV>)"
Replace = "<font size=-5 color=red> Block DIV tag in \2 </font>" |
но чёт мне не понравилось )) резал всё под корень
зы: подскажите, как вывести в Replace имя класса или id? а то ч уж по всякому, был бы рад даже фильтру(\1) но оно пустое почему-то.[/code]
наткнулся на форуме
proxomitron.ru/board/viewtopic.php?p=8859&sid=b1387022839d417c27a16573313df722#8859
Код: |
[Patterns]
Name = "Bad div killer 2008-12-10"
Active = TRUE
URL = "(^$LST(noBadTags))"
Bounds = "$NEST(<div,</div>)"
Limit = 10240
Match = "($LST(BadDivs))\2*"
Replace = "<!-- Bad div killed (\2)-->" |
я пробовал
Код: |
"$NEST(<div,</div>)"
и
<div,</div>) |
часто лишняя > или div выскакивают.
|
|
|
К началу |
Профиль Сообщение |
 |
Alex Qwerty
Gold Member

Зарегистрирован: 20.07.2007
Сообщения: 206
|
Много зарежешь, тут глянь подходящие слова: http://www.allwords.com/
Цитата: |
зы: подскажите, как вывести в Replace имя класса или id? а то ч уж по всякому, был бы рад даже фильтру(\1) но оно пустое почему-то. |
Ага, нигде не присваиваешь ведь. Посмотри в помощи Tips and Tricks - Capturing specific tag attribute values.
У меня Опера, я такое режу нынче через UserCSS.
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
SergS писал(а): |
пример из DIV_Off-RE.lst
Код: |
MarketGid*
*informer*
*footer*
[..] |
|
Звёзды в конце записей блоклиста не нужны: совпадение слева направо проверяется, а в конце $AV() звезда и так есть.
А "футер" я бы даже не пытался использовать: это типичный элемент вёрстки.
Кстати, -RE в названиях традиционно означает происхождение из сборки Russian Edition ;)
Цитата: |
подскажите, как вывести в Replace имя класса или id? |
Дык, как везде: сохраняй в Match нужное значение в \1 и используй его в Replace. Типа такого: ($AV())\1
|
|
|
К началу |
Профиль Сообщение |
 |
SergS
Member

Зарегистрирован: 02.02.2011
Сообщения: 58
|
Alex Qwerty писал(а): |
Ага, нигде не присваиваешь ведь. |
присваиваю)) в реплейсе видно, что он был. (c)"как раз парюсь с этим"
было так
Код: |
$AV($LST(DIV_Off-RE)) |
но на страницу Replace выводил токо стороку "Block DIV ". бывало срабатывало, что у 1 из 5 на странице отображалось, а у остальных пусто
Цитата: |
У меня Опера, я такое режу нынче через UserCSS. |
тоже поклонник оперы, CSS пользуюсь(и для отдельных сайтов свои есть)). С полгода назад перешёл Opera_AC(т.к. надоело после каждого обновления парится с настройками) opera-ac.net Раньше я ее обходил, т.к. кривая была, но сейчас, мощная сборка.
хоца, чтоб не зависимо от браузеров, сайты отображались в привычном виде) без рекламы. А то зайдешь на некотрые другим браузером и пугаешься  "куда я попал?"  В PM вижу выход. А, наверное, 90% вырезок в CSS это DIV. Ну, или его достаточно, чтоб вырезать всё)) почти
chAlx писал(а): |
Звёзды в конце записей блоклиста не нужны |
спс. по блок листам догадался, а тут чёт не сообразил
chAlx писал(а): |
Кстати, -RE в названиях традиционно означает происхождение из сборки Russian Edition ;) |
я знаю) в данном случае, для меня, это означает место расположение файла
|
|
|
К началу |
Профиль Сообщение |
 |
SergS
Member

Зарегистрирован: 02.02.2011
Сообщения: 58
|
Alex Qwerty ,
кстати, в Опере вырезаный элемент не подгружался(давно тестил, ща не знаю как работает), а в Фоксе(ADBlock) загружал элемент, но отключал его видимость.
т.е. на трафик влияет(и не только) по-разному. еще один +Proxomitron-у
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
SergS:
Цитата: |
присваиваю)) в реплейсе видно, что он был. |
Надо не чтобы было видно, что было раньше, а чтобы просто было :) Поставь ()\1 в нужном месте, т.е. скобками вокруг $AV() (очевидно, скобок получится несколько -- это не страшно: не регэкспы чай).
Цитата: |
в Фоксе(ADBlock) загружал элемент, но отключал его видимость. |
Не знаю, как он отключает. Если display:none, то из такого элемента подгружаться (начиная с некоторых давних версий) ничего не должно.
|
|
|
К началу |
Профиль Сообщение |
 |
SergS
Member

Зарегистрирован: 02.02.2011
Сообщения: 58
|
а как влияет "число байтов"? где бы прочитать или подскажите?
меняю на 256 - работает, ставлю 16000 - нет
я так думал, это отводится на количество текста, чем больше-тем лучше, а нет, как-то по-другому работает (
chAlx , значение переменных именно в хтмле не отображается, а в тесте есть. хотя, мб это где ложные срабатывания...нинаю
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Лимит -- размер блока исходного текста, проверяемого фильтром за раз. Если при больших значениях не работает -- значит, фильтр неправильный (много звёздочек: захватывает несколько искомых фрагментов как один).
Почитать известно где: тут или тут.
Цитата: |
значение переменных именно в хтмле не отображается |
Дык покажи фильтр, где не работает переменная -- поправим. (Только не тот же самый, где переменной в Match вообще нет.)
|
|
|
К началу |
Профиль Сообщение |
 |
SergS
Member

Зарегистрирован: 02.02.2011
Сообщения: 58
|
chAlx , спс, почитаю. но, имхо, от размера баннера зависит похоже. А может, другие фильтры подсерают ... нуно бы поднять выше правило
убрал строчку лимита и всё заработало  правда, он сам создал строчку, но работает там где отказывалось
Код: |
Name = "Kill DIV(id or class)"
Active = TRUE
Bounds = "$NEST(<DIV*>,</DIV>)"
Limit = 4096
Match = "*((id|class)=$AV($LST(DIV_Off-RE)))\1*"
Replace = "<font size=-5 color=red>Block DIV \1</font>"
|
|
|
|
К началу |
Профиль Сообщение |
 |
SergS
Member

Зарегистрирован: 02.02.2011
Сообщения: 58
|
можно и так:
Код: |
Bounds = "$NEST(<DIV*>,</DIV>|<td*>,</td>|<table*>,</table>)" |
и тп
можно добавить и некотрые таблицы можно срезать
|
|
|
К началу |
Профиль Сообщение |
 |
SergS
Member

Зарегистрирован: 02.02.2011
Сообщения: 58
|
как бы это дело научить привязываться к сайтам?
...
а проще сделать два листа.
1 общий
2 с url
|
|
|
К началу |
Профиль Сообщение |
 |
|