Страница 1 из 1

PCRE и запросы в поисковых системах

Добавлено: Пн фев 26, 2007 16:53
drsmoll
появилась необходимость заблокировать некоторые русские слова в поисковых системах, с вида скажем %EA%5E%A3
в pcre вписываю \%EA\%5E\%A3 -не срабатывает...
вписать русским текстом - тоже не работает.
в перл-редиректоре можно
$text =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;
и работать со строкой.
как сделать сие в режике?

Добавлено: Пн фев 26, 2007 23:34
Slava
Режик сначала преобразует послежовательности вида %EA%5E%A3 в восьмибитные данные, а затем выполняет по ним pcre поиск.
То есть, искать надо русские слова.
Попробуйте сменить кодировку в pcre файле.
Если не поможет, пришлите конкретный пример, что вот этот урл должен блокироваться, так как в pcre файле есть такое-то правило, но не блокируется.

Добавлено: Вт фев 27, 2007 11:18
drsmoll
>>Режик сначала преобразует послежовательности вида %EA%5E%A3 в восьмибитные данные, а затем выполняет по ним pcre поиск.
Стало все понятно.
>>Попробуйте сменить кодировку в pcre файле.
Спасибо - этот вариант помог

Добавлено: Пн май 14, 2007 9:28
kolman
отличная вещь этот режик!!!!

теперь вопрос:

замечательно подрезает поисковички (типа Яндекса) с "неправильными запросами" на русском языке, на скока я понял там кодировка win 1251, но как заставить подрезать его такие же запросы в гугле? Тама кодировка utf-8 на сколько я понял.

П.С. Может я туплю? Есть какое-то тривиальное решение?

Добавлено: Пн май 14, 2007 10:17
Slava
Откройте файл pcre в кодировке utf-8 и добавьте нужное правило в этой же кодировке.
kolman писал(а):отличная вещь этот режик!!!!

теперь вопрос:

замечательно подрезает поисковички (типа Яндекса) с "неправильными запросами" на русском языке, на скока я понял там кодировка win 1251, но как заставить подрезать его такие же запросы в гугле? Тама кодировка utf-8 на сколько я понял.

П.С. Может я туплю? Есть какое-то тривиальное решение?

спасибо

Добавлено: Вт май 15, 2007 9:54
kolman
спасибо, создал отдельную группу и все заработало. Скажите есть где-нить список слов (русских и англицких) которые желательно перекрыть в поисковиках? На типа того "порно", "сиски"... "теракт", "ограбить банк" и "взорвать бомбу".... Ну смысл понятен, да и хотелось бы узнать где скачать обновления бан-листов (банеры, порнуха, медия и т.д.) :oops: прошу прощения, если это тут есть где-то и я пропустил или оффтоп

Добавлено: Вт май 15, 2007 10:25
Slava
Скачать листы можно через DBL.
Списком русских слов не владею.

Добавлено: Пн дек 17, 2007 8:21
com
А как бы сделать так, чтобы поиск по русским словам был регистронезависимым?
Slava писал(а):Режик сначала преобразует послежовательности вида %EA%5E%A3 в восьмибитные данные, а затем выполняет по ним pcre поиск.
То есть, искать надо русские слова.

Добавлено: Пн дек 17, 2007 11:27
Slava
Попробуйте заменить в исходниках файл pcre.c на новый: http://www.rejik.ru/download/new/pcre.c

Отпишитесь, на сколько помогло.
Если не поможет, пришлите примеры для проверки, urls и check-redirector с двумя вариантами регистра.

Добавлено: Пн дек 17, 2007 21:13
com
Спасибо за оперативность, Slava
С предлагаемым патчем почти работает. А именно, работает правильно когда кодировка не UTF-8.
В гугле зависимость от регистра осталась.

Файлы:

http://88.200.175.234/rejik/pcre
http://88.200.175.234/rejik/check-redirector

Добавлено: Вт дек 18, 2007 19:10
Slava
Для проверки, замените в pcre.c, в строке:

Код: Выделить всё

    setlocale(LC_ALL,"ru_RU.KOI8-R");
кои на юникод (на сервере должна присутствовать соотвествующая локаль).

по идее, юникод начнёт блокировать, остальное пропускать.

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

Если слов так мало, то проще всего будет вписать его в разных кодировках, разного регистра.

Добавлено: Вт дек 18, 2007 22:15
com
Заменил в pcre.c

Код: Выделить всё

    setlocale(LC_ALL,"ru_RU.UTF-8");
теперь не фильтрует во всех кодировках.

Кстати, в какой неюникодной кодировке прилетает строка режик ведь тоже не знает?
А слов таких у меня несколько десятков. Список для режика в различных кодировках я генерю скриптом. Наверное, его можно модифицировать чтоб он и в различных регистрах генерировал. Но при средней длине слова в 5 букв получаем 32 варианта, да в 5-ти кодировках - 160 вариантов на одно слово. Не выход, на мой взгляд...

Добавлено: Пн дек 24, 2007 12:08
Rus
Возможность заблокировать некоторые русские слова (с учетом кодировки и регистра) в поисковых системах - это весьма полезно.
Ждем успешного окончания тестирования.
8)

Добавлено: Чт янв 31, 2008 16:42
kross
Пробую настроить блокировку по словам. Из вышеперечисленных постов получилось блокировать по словам, но тока английским. В файле pcre написал:

porno([\W]|$)

блокирут и в google, yandexe, ramblere, а вот на русском языке никак не получается заблокировать. подскажите как это сделать или пример привидите хоть что писать. Пробывал разные кодировки-не получилось