Практически каждый пользователь всемирной сети, независимо от используемого устройства, рано или поздно сталкивается с капчей. Это те самые сложно читаемые символы, которые нужно ввести в текстовое поле для получения доступа к нужной информации. Но если у людей нет вопросов к тому, как обойти капчу, то у разработчиков приложений для парсинга возникают серьезные проблемы. Ведь этот инструмент позволяет распознать и заблокировать бота, тем самым остановив процесс извлечения нужных нам данных.
Что такое капча?

Расшифровка аббревиатуры CAPTCHA — Completely Automated Public Turin test to tell Computers and Humans Apart. В переводе с английского – Полностью автоматизированный общедоступный тест Тьюринга, различающий компьютер от человека. И в большинстве случаев, сталкиваясь с ним, боты парсеров попросту не знают, что делать дальше.
Ведь основная цель этого инструмента – задать вопрос или поставить задачу, справиться с которой сможет только человек. «Классический» пример – изображение с сильно искаженными символами латинского или кириллического алфавита. Для «живого» пользователя, расшифровка капчи раздражительна, но вполне возможна, в то время как машина столкнется с логической ошибкой, прекратив любые дальнейшие действия.
Впервые, тест Тьюринга в интернете ввели разработчики Google (тот самый искаженный текст). Чуть позже, медиагигант представил первую итерацию reCaptcha, где вместо букв, цифр и символов используются светофоры, автомобили, лестницы, дымоходы и т.д. Но благодаря стремительному развитию алгоритмов машинного обучения, разработчикам ботов для парсинга удалось научить робота обходить эту защиту. Поэтому в 2018 году, в Гугле объявили о запуске 2 и 3 версии рэКапчи, отличающиеся от своего прототипа:
- Требованием кликнуть на чекбокс – кнопку «отправить решение» для проверки сервисом (V2);
- Запуском при выявлении подозрительной активности (с последующим уведомлением владельца сайта, та же V2);
- Интеллектуальным анализом взаимодействия пользователя с браузером, изучением отпечатка устройства с последующей передачей информации на сервера поисковика и в админ-панель сайта (V3).
Причем именно третья создала наибольшее количество проблем и по сегодня считается «непобедимой». А владелец сайта может выбрать три варианта развития событий при выявлении подозрительной активности: запросить дополнительную аутентификацию, заблокировать пользователя или занести «сомнительный» IP-адрес в черный список. Либо просто проигнорировать предупреждение.
Основные виды и особенности ReCaptcha

Для защиты от роботов, разработчики применяют различные виды капч. Самыми распространенными считаются «классические» текстовые. В последние годы их вытеснила графика. На отдельных зарубежных ресурсах можно встретить аудиозаписи.
Чтобы понять, как они работают, разберем каждый из видов капчи в деталях.
- Текстовая. Обычно, состоит из двух частей – последовательности случайно сгенерированных символов (букв, цифр) с искажением, а также текстового поля для ввода расшифрованной информации;
- Математическая. Вариация, где вместо текста система задает простейший пример, решить который сможет даже ребенок. Считается пережитком прошлого, поскольку боты научились «видеть» графику и решать их;
- Изображения. Сервис предлагает на выбор 6-9 разных фото, требуя указать на наличие конкретного предмета – животного, автомобиля, светофора, самолета, корабля, пешеходного перехода и т.д. Либо – перетащить блок в пустоту на изображении;
- Звук. Система воспроизводит случайные слова или числа, добавляя немного фонового шума. Задача пользователя – расслышать сказанную фразу и ввести ее в текстовое поле.
И если для первых трех разработаны инструменты, осуществляющие автоматический ввод капчи, то с последним у парсеров возникают огромные проблемы. Тем не менее, из-за высокой стоимости поддержки, встречается она крайне редко.
Обход капчи во время парсинга

Цель системы защиты Captcha – исключить вероятность попадания ботов на страницы, где происходит взаимодействие с пользователями. Поэтому чаще всего, она всплывает при входе на сайт, а также в форме оплаты услуг или товаров в интернет-магазинах. Причем убрать проверку на робота практически невозможно.
Ведь нынешние итерации капчи анализируют пользователя по десяткам параметров: от используемого устройства до поведения на сайте. При обнаружении бота, IP-адрес, с которого тот направляет запрос, блокируется и заносится в черный список. В случае с парсерами, это приводит к остановке сканирования и дальнейшего извлечения нужной нам информации.
Но обойти эту проблему реально. Особенно – с прокси-серверами, «подменяющие» IP бота с заданной периодичностью. Тем не менее, это может «затормозить» процесс. Поэтому лучшее решение – избежать запуска проверки. Для этого желательно:
- Настроить бота на имитацию поведения реального человека;
- Задать правильную скорость и адекватный объем извлекаемой информации;
- Настроить user-agent, замаскировавшись под роботов поисковой системы.
А при разработке самописного скрипта, во избежание проблем, можно использовать средства обхода, встраивая их в код будущей программы. Практически все сервисы анти-капчи имеют собственные API, связующие ваше приложение с серверами, на которых они размещены. Причем часть из них бесплатна, вторые – с адекватными ценниками, в то время как третьи подкрепляют стоимость стабильностью работы приложений.
Расширения браузеров для обхода капчи

В идеале, у человека не должно возникать проблем с решением этой задачи. Тем не менее, системы могут исказить символы до неузнаваемости. Кроме того, та же reCaptcha может быть очень раздражающей, предлагая решить головоломку до 4 раз подряд, а одна ошибка заставит начать все сначала. Благо, хорошие люди придумали десятки расширений и плагинов для браузеров, способных решать капчи различной сложности, чтобы избавить раздражительных пользователей от лишних триггеров для стресса.
Buster: Captcha Solver for Humans
Абсолютно бесплатная антикапча с открытым исходным кодом. Может решать текстовые, математические, графические и звуковые задачи. Однако, работает только с reCaptcha от Google. Впрочем, для большинства пользователей этого будет вполне достаточно, т.к. практически все разработчики сайтов пользуются именно рэКапчей. Совместим со всеми популярными браузерами, поддерживающими плагины, аддоны и расширения – Chrome, Firefox, Opera.
Чтобы запустить Buster, при вылете окна капчи достаточно нажать на зеленый или оранжевый кружок. В большинстве случаев, решение одной задачи отнимает не более 30 секунд, на время ожидания скрипт «подтягивает» анимацию загрузки. Если головоломка не решена, достаточно нажать на кнопку повтора.
AntiCaptcha
Один из самых популярных сервисов решения капчи, рекомендуемый к применению большинством программистов и веб-разработчиков. В отличие от Buster, для установки потребуется внести небольшую плату, купив плагин в магазине расширений Chrome или Firefox. Успешно распознает и решает головоломки, генерируемые Google, Яндексом, FunCaptcha, GeeTest и другими системами защиты.
Чтобы запустить расширение после установки, достаточно кликнуть правой кнопкой мыши в поле ввода решения, выбрав пункт «Найти и решить Captcha». Либо использовать сочетание клавиш Ctrl (в компьютерах Apple – Command) + Shift + 6. В среднем, на решение одной задачи уходит от 5 до 20 секунд. С reCaptcha же сервис справляется за 30-60.
Recaptcha Solver
Представляет собой своеобразный «агрегатор», позволяющий пользоваться сразу несколькими сервисами (на выбор, после покупки специальных кредитов):
- DeathByCaptcha;
- 2captcha;
- ImageTypers;
- Anti-Captcha;
- BestCaptchaSolver;
- EndCaptcha.
После перевода средств вы сможете выбрать понравившуюся вам службу в раскрывающемся меню, забрав ключ её API, либо получить логин и пароль, открывающие полный доступ к одному из сервисов.
Rumola
Инструмент для работы с текстовыми и математическими капчами. Не воспринимает графические головоломки, на которых строится reCaptcha, но примечателен автоматическим обнаружением проверки с последующим её решением без вмешательства пользователя. Однако, эта опция полезна далеко не всегда, поэтому её можно отключить в настройках расширения на соответствующей странице браузера.
Алгоритм работы Rumola Captcha Solver прост: при выявлении капчи, алгоритм ставит метку на изображение и текстовое поле для ответа. Для запуска программы достаточно щелкнуть по полю левой кнопкой мыши дважды. В случае, когда плагин не смог выявить головоломку, вы можете указать на нее самостоятельно, через правую кнопку мыши, указав на изображение с загадкой и поле для введения ответа. Среднее время решения задачи – 5-10 секунд.
Rumola – платный плагин. Тем не менее, попробовать его в деле можно и бесплатно: после установки вы получаете 5 кредитов, позволяющих протестировать его на различных видах текстовой или математической капчи.