Российский ученый Сергей Шпилькин, известный своими исследованиями статистических аномалий в результатах российских выборов, в своем фейсбуке сообщил о том, что по состоянию на 19 сентября 2021 года на сайте Центризбиркома РФ невозможно скопировать данные со страницы с результатами выборов.
Таблица с данными в браузере отображается корректно, однако при попытке скопировать и вставить текст, либо при чтении исходного кода страницы, вместо чисел в некоторых ячейках виден только случайный набор символов.
Ссылка на страницу для примера: http://www.izbirkom.ru/region/region/karachaev-cherkess?action=show&root=92000011&tvd=4094002721588&vrn=100100225883172®ion=9&global=&sub_region=9&prver=0&pronetvd=null&vibid=4094002721588&type=242

Судя по всему, реализовано это генерацией специальных CSS-стилей и специальных шрифтов, причем при каждом обновлении страницы названия стилей и шрифтов разные.


О причинах подобной обфускации пока что ничего неизвестно, однако, как предполагает сам ученый и комментаторы в фейсбуке, сделано это для затруднения автоматизированного анализа результатов выборов независимыми аналитиками.
Upd. Пользователь @jtraub также заметил, что кроме использования сгенерированных шрифтов для подстановки символов, в страницу также вставляются дополнительные скрытые span'ы для затруднения парсинга.
Upd2. @nin-jin предложил изящный 25-строчник на JS, который легко преобразовывает страницу в нормальный текст с помощью html2canvas и tesseract.
Upd3. @strayge предложил решение на Python с улучшенной точностью.
Upd4. Теперь еще есть дешифратор от @aulitin не испольщующий браузер и OCR.
Upd5. ЦИК убрал обфускацию со страниц со старыми данными, но новые данные по-прежнему обфусцированы: http://www.izbirkom.ru/region/region/karachaev-cherkess?action=show&root=92000011&tvd=4094002721588&vrn=100100225883172®ion=9&global=&sub_region=9&prver=0&pronetvd=null&vibid=4094002721588&type=242
Upd6. И еще инструмент от @lifeair: https://github.com/LiFeAiR/izbirkom31
Follow-ups: https://habr.com/ru/post/579418, https://habr.com/ru/post/579492/