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

Обсуждение программы редиректора
Ответить
drsmoll
Сообщения: 8
Зарегистрирован: Пн фев 26, 2007 16:30

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

Сообщение drsmoll »

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

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

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

drsmoll
Сообщения: 8
Зарегистрирован: Пн фев 26, 2007 16:30

Сообщение drsmoll »

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

kolman
Сообщения: 2
Зарегистрирован: Пн май 14, 2007 9:21

Сообщение kolman »

отличная вещь этот режик!!!!

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

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

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

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Откройте файл pcre в кодировке utf-8 и добавьте нужное правило в этой же кодировке.
kolman писал(а):отличная вещь этот режик!!!!

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

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

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

kolman
Сообщения: 2
Зарегистрирован: Пн май 14, 2007 9:21

спасибо

Сообщение kolman »

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

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Скачать листы можно через DBL.
Списком русских слов не владею.

com
Сообщения: 9
Зарегистрирован: Пн дек 17, 2007 8:15

Сообщение com »

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

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

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

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

com
Сообщения: 9
Зарегистрирован: Пн дек 17, 2007 8:15

Сообщение com »

Спасибо за оперативность, Slava
С предлагаемым патчем почти работает. А именно, работает правильно когда кодировка не UTF-8.
В гугле зависимость от регистра осталась.

Файлы:

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

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Для проверки, замените в pcre.c, в строке:

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

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

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

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

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

com
Сообщения: 9
Зарегистрирован: Пн дек 17, 2007 8:15

Сообщение com »

Заменил в pcre.c

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

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

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

Rus
Сообщения: 112
Зарегистрирован: Пт ноя 18, 2005 13:44

Сообщение Rus »

Возможность заблокировать некоторые русские слова (с учетом кодировки и регистра) в поисковых системах - это весьма полезно.
Ждем успешного окончания тестирования.
8)

kross
Сообщения: 2
Зарегистрирован: Ср янв 30, 2008 21:42

Сообщение kross »

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

porno([\W]|$)

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

Ответить