Детекция крякозябров - как реализовать? Есть идеи?

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Есть какой-то такой текст (результат парсинга):
�����������7(@f��������ZFB�`fn=��<����i�����Z�FX[��U��{�{Fuy�]�baaaccU/3��~�q�ɪ��`0�:#RQ��B;�����|�G��1#s��/�������S�#���i��;���|���_c�[�lY7�%a~;�����. �_c�[�l�d���=ns\�uq�8����<����;���y<3? ��-A�, �[�K�����nj]�q:E{���p�oS���OO� ���)����܍'6. ��Nc�s2�˶mb�q �vv�. ����. �MW���߶D���}Ѽ|g^��ӄ]�̅oq6e�┓�0�X�Ĕ��? e��cS�\�0�v�$�H�\tO�@�|�Ƣ|��[�����X�7~��gB�q�F�]�N, �OLo�J�J��t������;��W�'��! ز�o�3~, ������w��)]Ҁ"�i(kj˹-_U]���w����{�>�����ճ�u�{�Ҹf���Qn��_��! �? �M�H�^F, �z���f���}s���? �۸meT������@���! _LF���N>�/�4�Փ��#�_j@\;2G$p��ݞ�v���y����#Q�6�X�K�lp��a%���K�����Q��m�ڻ��V_kx\+��-�׾I��qJe1���nT��Ca������Լ\��6�%X�(����MH! ����Ͽ������? l�y\[��p���d�e\n{�}��2�@��Sg���� �
Или даже такой:
PGlmcmFtZSB3aWR0aD0iNTYwIiBoZWlnaHQ9IjMxNSIgc3JjPSIvL2FwaS5jdWV2YW5hMy5pby9yci9nZC5waHA/aD1lazVsYm05eFlXTnJTMHhKTVZwNWIyMUtSRWswZEZCTGJqVmthSGhrUkdkck9HMWpibkJwVW5oaFMxWnNiMlZzV25KbE5IWktkVmx4WVVOdmNuSlVUWEEzVDJOd2NGTlRkV1EyTkhreVQyeG9OMkZUTW1SeFUzRmFkVmt5VVQwOSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPg==
Хочется придумать универсальный алгоритм, который сможет с высокой долей вероятности сказать что перед нами нормальный текст или крякозябры.

Вначале думал матчить регуляркой [\w]+, а потом проверять среднюю длину найденных результатов, но на коротких текстах скорее всего зафейлится.

Может быть у кого-то есть мысли или кто-то знает как определять такие тексты, чтоб не использовать их при парсинге?
 
Последнее редактирование:

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
по первому вроде тупо наличия символа можно искать � ну в той самой кодировки, как он там указывается, во втором случае можешь искать == тоже вроде годно.
Проблема то не в кракозябрах, а в том что браузер не ту кодировку использует. Были же темы в багах со шрифтами - тупо шрифты системы не соответствую, и валится подобная дичь ...
Кроме того у тебя длиииные слова получаются, как анамалия. Нет пробелов.
 
Последнее редактирование:

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
по первому вроде тупо наличия символа можно искать � ну в той самой кодировки, как он там указывается, во втором случае можешь искать == тоже вроде годно.
Не вариант, где-то может не быть такого символа/символов.

Проблема то не в кракозябрах, а в том что браузер не ту кодировку использует.
Верно. Сайт умеет только Brotli, а кубик GET-запроса не умеет.
Но это опять же - частный случай, могут быть и другие проблемы (как с base64 из примера который откуда-то там взялся).
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
Верно. Сайт умеет только Brotli, а кубик GET-запроса не умеет.
только Brotli врядле, его обычно как доп опцию используют, вероятно он умеет и обычный gzip или deflat но фиг его знает
 
Регистрация
12.07.2014
Сообщения
916
Благодарностей
373
Баллы
63

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
только Brotli врядле, его обычно как доп опцию используют, вероятно он умеет и обычный gzip или deflat но фиг его знает
Нет, сайт умеет только brotli. Это как защита от парсинга.

Этот подход явно устарел, ему 8 лет.
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)