DEV Community

Markus
Markus

Posted on • Edited on

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году?

Казалось бы, на дворе 2024 год, а пользователи продолжают стойко преодолевать тяготы (читай угадывать где изображены светофоры), которые им выставляет корпорация Гугл в виде капчи и хвастаться у кого больше score, чтобы преодолеть рекапчу посложнее. Тем не менее, по заявлениям некоторых оптимизаторов, капчи уже давно себя изжили и не работают так эффективно, как хотелось бы изначально их разработчикам. Какая же самая наиболее популярная капча современности? Это reCAPTCHA.

Image description

Бесспорно, reCAPTCHA V2, reCAPTCHA V3 и т.п. reCAPTCHA популярнее остальных видов капч. Создана reCAPTCHA была компанией Гугл в далеком 2007 году. Прошло уже много лет с момента появления первой reCAPTCHA, но она продолжает удерживать пальму первенства, периодически немного сдавая позиции конкурентам и отвоевывая их обратно. Но еще ни разу reCAPTCHA не заняла даже 2 место по популярности, несмотря на все ее несовершенство перед нейросетями.

По поводу несовершенства, также есть вопросики. Чего стоит нашумевший доклад компании Open AI (страница 15), в котором они признали, что нейросеть для того, чтобы обойти капчу обратилась к человеку (обманула его, кстати), чтобы это человек помог ей зарегистрироваться на сервисе распознавания капчи 2капча дляобхода капчи. Слишком много капч в одном слове, не кажется? Сути это не меняет — нейросеть не справилась с простейшей задачей, а значит у человечества все еще есть шанс!

Вернемся к статье! Было огромное количество попыток сделать «убийцу рекапчи», какие-то были менее успешными, какие-то только выглядели как угроза reCAPTCHA, а на деле оказывались пшиком, но факт остается фактом, желание конкурентов сделать что-то лучше и надежнее reCAPTCHA демонстрирует ее популярность.

Виды reCAPTCHA

- reCAPTCHA V1
- reCAPTCHA V2
- reCAPTCHA V3

Каждая из них – это улучшенная версия предыдущей reCAPTCHA. Давайте разберемся подробнее почему и чем они отличаются:

Что такое и как распознать reCAPTCHA V1? Очень просто!

Самая первая версия капчи reCAPTCHA V1 представляла собой отрывки текста из отсканированных книг, ее еще называли (и до сих пор называют) простая капча или текстовая капча. Это была достаточно примитивная капча, сильно навязчивая в определенных случаях и раздражающей пользователей.

К слову, сервисы распознавания капчи решают такую reCAPTCHA по самому минимальному тарифу, и формируют маркетинговые предложения, демонстрируя нереально низкие цены на распознавания, также, именно благодаря текстовой reCAPTCHA (правда я ее очень давно уже не встречал, может где-нибудь в даркнете осталась, кто знает)

Юзеру предлагалось ввести текст в специальном окне, сейчас что-то подобное еще можно встретить на старых ресурсах, но на нормальных площадках уже никто не использует reCAPTCHA V1.

ReCAPTCHA V1 была первой версией, представленной в 2007 году. Она использовала искаженный текст из отсканированных книг, который пользователи должны были ввести, чтобы доказать, что они не боты. Эта система использовала ввод пользователей для оцифровки книг, газет и старых радиошоу и конечно же, для обучения своих моделей (не тех, которые на модных показах дефилируют, а тех, которые обучаются при помощи машинного обучения).

Image description

Именно в период, когда Гугл внедрил первую версию reCAPTCHA начали появляться автоматические решатели капчи, которые без особого труда обходили текстовую капчу. Сперва их обучали на массиве и после чего запускали в работу, со временем такие солверы делали все меньше и меньше ошибок и экономили владельцу кучу времени и средств.

С текстовой капчей хорошо справляются всевозможные приложения для распознования капчи, например в Гугл Хроме или в Мозиле.

reCAPTCHA v2 — Как распознать картинки? Где текст?

Все меняется и развивается, и научившись практически бесплатно обходить текстовые капчи автоматизаторы, уже откровенно насмехались над компанией Гугл. То есть, то, что изначально было создано для защиты поменяла свою функцию и уже выступала в качестве внешнего раздражителя для обычных посетителей сайта.

Наконец, после осознания того, что текстовые капчи больше не работают, была создана новая версия reCAPTCHA V2, которая была призвана убрать раздражение юзеров от навязчивости первой версии, повысить безопасность при защите проектов и в целом, улучшить пользовательский опыт.

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

Флажок («Я не робот»): Самый простой вид проверки, где пользователю нужно просто нажать на флажок. Система анализирует поведение пользователя, чтобы определить, человек это или бот. И если у системы не возникают вопросы — вы проходите дальше, а вот если вопросики к вам есть (например ваши куки показались системе слишком подозрительными, так как вы много раз безуспешно выполняли одно и тоже действие на сайте) вас просят потыкать картинки.

Задачи с изображениями: Если система сомневается, она предлагает пользователям выбрать определенные объекты на изображениях (например, «Выберите все изображения с светофорами»). И чем меньше к вам доверия, тем больше будет таких картинок и они будут дольше прогружаться перед тем, как покажутся вам.

Смысл в таком разделении достаточно прост — по задумке Гугл, обычный пользователь интернета, не посещает сомнительных ресурсов, не обращается к одному и тому же ресурсу много раз (как это делают неумные боты) и он просто нажмет на флажок, ну или по быстрому решит пару картинок. А вот бота то, погоняют как следует.

Image description

Что касается противоположного лагеря то с появлением reCAPTCHA V2 старые способы уже не работали, и многие авторешатели прекратили нормально функционировать, рынок начал перестраиваться и продолжает развиваться даже сейчас, так как появляются все новые и новые параметры, которые учитываются при решении reCAPTCHA.

В то время рынок реально просел, большинство парсеров перестало нормально работать, это можно сравнить если не с появлением танков в Первой Мировой войне, то, как минимум с появлением мобильных телефонов. Эта reCAPTCHA полностью поменяла правила игры. И кстати, научно доказанный факт (это не точно), после нескольких бессонных ночей первыми способ обхода второй версии рекапчи выкатила 2captcha, ну а после них уже все остальные подхватили способ и рынок снова ожил.

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

Что такое и как обойти Гугл reCAPTCHA v3? То что невидно распознать нельзя... Или все таки можно?

Решение не раздражать пользователя преследовало компанию Гугл на всех этапах создания reCAPTCHA, но как этого добиться? Путем скрытия reCAPTCHA, так третья версия стала невидимой. Она работает в фоновом режиме, непрерывно отслеживая действия пользователя на сайте и присваивая им оценку риска (от 0.0 до 1.0) на основе их поведения.

Вот тот самый score который я упоминал в самом начале текста. То, чем хитрые боты хвастаются в своих ботокурилках и на совместных ботокорпоративах, а может даже боты мальчики отправляютботам девочкам в личку score пики, кто знает? В любом случае — этот показатель присваивается каждому пользователю и по различным метрикам вычисляется его значение.

Чем выше score тем быстрее пользователь проходит reCAPTCHA и тем меньше у него проблем. Чем ниже.. Ну, тут думаю понятно.

С появлением новой версии рекапчи революции не случилось, но нервов она тоже подпортила сервисам распознавания капчи. Способ обхода reCAPTCHA V3 был найден, и в для этого лучше всего работают именно сервисы с ручным распознаванием капчи, так как у живого человека score всегда будет лучше!

Image description

Image description

Веб-сайты могут устанавливать пороги для оценок риска, определяя уровень взаимодействия или проверки в зависимости от предполагаемого риска. Если владелец хочет максимально улучшить пользовательский опыт, он выставляет менее высокий score и наоборот. Таким образом компания Гугл предоставила владельцам выбор между пользовательским опытом и защитой, найти баланс в этом случае не так и сложно.

Кто эти люди, которые практикуют обход reCAPTCHA и для чего им это нужно?

Зачем в принципе нужно обходить reCAPTCHA? Если ты рядовой пользователь и просто посещаешь веб ресурс, ты можешь решить эту проблему самостоятельно, но другой вопрос, когда тебе необходимо анализировать и тестировать системы своего ресурса на устойчивость к нагрузкам либо для улучшения пользовательского опыта, или для автоматизации рутинных задач.

Капча встречается при парсинге больших объемов данных, например Амазона или какого-нибудь Озона с Вайлдбериз.

Большой объем капчи решить вручную не получится. Для этого разработчики создают всевозможные программы, модули, библиотеки, скрипты и тп для того чтобы обойти reCAPTCHA. Выкладывают свои наработки на githab и другие площадки. Я рассмотрел три основных языка программирования, которые считаются наиболее популярными для автоматизации рутинных задач и собрал топ модулей для распознавания капчи, а также описал как решить reCAPTCHA вручную (без использования готовых модулей).

Image description

Python и reCAPTCHA, как решать reCAPTCHA на python?

Наиболее популярный язык программирования, безусловно Python, код для этого языка программирования ищут в 5 из 10 случаев, когда гуглят «Как обойти рекапчу» в интернете (не учитывая запросов, которые содержат приставку python, типа таких – «как обойти рекапчу на питоне» и тп.

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

Это не топ модулей, которые являются самым популярными во все времена - это просто пять модулей, которые по различным причинам находятся в поисковой выдаче на топовых позициях. Да, подобных модулей куча, но их нет в топе, а значит их нет в этой статье. Тестирование производительности, сравнение и т.п. не проводилось. Я просто попробовал их на работоспособность и на момент публикации статьи они работали.

Я выделил следующие популярные модули, с помощью которых можно распознать reCAPTCHA (кстати, с помощью всех этих модулей можно распознать и другие типы капч):

Модуль для обхода reCAPTCHA на Python 2captcha

Официальный модуль от сервиса распознавания капчи 2капча, разработан для легкой интеграции с их АПИ, модуль обладает расширенным функционалом и поддерживает настройку прокси. Модуль поддерживается и регулярно обновляется, может быть использован при парсинге веб-ресурсов и автоматизации.

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

Может это и лишнее, но я уточню, что каждый модуль, представленный в этой статье интегрирует сторонний платный сервис, учитывайте это.

Модуль поддерживает асинхронные операции.

Модуль для распознавания Google reCAPTCHA для Питон

Модуль для решения reCAPTCHA и некоторых других популярных капч (ReCaptcha (v2, v3), FunCaptcha и hCaptcha). Основное отличие его от предыдущего модуля в том, что он более узконаправленный (поддерживает меньшее количество капч) и может менее гибко реагировать на обновления со стороны reCAPTCHA, по сравнению с предыдущим официальным модулем.

2Captcha-solver поддерживает настройку прокси и особенно полезен для задач, требующих высокой производительности, благодаря поддержке асинхронных операций, что позволяет одновременно решать несколько reCAPTCHA.

Модуль написанный под Python — решатель Рекапчи

Многофункциональный модуль, основной упор которого делается на поддержку нескольких сервисов распознавания капчи. Функционал модуля примерно похож на предыдущие два, он поддерживает настройку прокси и асинхронные операции.

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

Модуль для распознавания рекапчи на Python (для Селениума)

Это узконаправленный модуль, который используется для легкой интеграции с Selenium и Playwright, и поддерживает все виды reCAPTCHA.

Модуль можно использовать без необходимости установки дополнительных расширений и для начала потребуется только ключ АПИ.

Его главное отличие от предыдущих модулей — то что twocaptcha-extension-python будет сложно использовать для вопросов автоматизации, где не используется Selenium или Playwright, так как используется исключительно для перечисленных сервисов.

Модуль для распознавания reCAPTCHA V2 и V3 на Питон

Модуль который напоминает по функционалу captchatools, и его можно назвать аналогом указанного сервиса. То есть, вы можете использовать один из них на выбор.

Все характеристики совпадают: поддержка нескольких сервисов, перебор сервисов в процессе распознавания капчи, асинхронные операции, настройка прокси. Все это есть и тут. Различается лишь разработчик.

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

Хочется также отметить, что все перечисленные сервисы (а не только Twocaptcha-extension-python) могут использоваться вместе с Selenium и Playwright, отличие будет лишь в подключении и синхронизации.

Как обойти reCAPTCHA используя Python (пример кода)

Если не доверяете никаким сторонним модулям, я подготовил максимально универсальный код, который можно с небольшими доработками вставить в ваш скрипт, написанный на Питоне и решать reCAPTCHA автоматически. Вероятно под конкретный проект потребуется доработать этот код, но в целом - вариант рабочий и учитывает все параметры указанные в АПИ.

Вот сам код:

import requests
import time

API_KEY = 'ваш_ключ_API_2Captcha'

def solve_recaptcha_v2(site_key, url):
    payload = {
        'key': API_KEY,
        'method': 'userrecaptcha',
        'googlekey': site_key,
        'pageurl': url,
        'json': 1
    }

    response = requests.post('https://2captcha.com/in.php', data=payload)
    result = response.json()

    if result['status'] != 1:
        raise Exception(f"Ошибка при отправке капчи: {result['request']}")

    captcha_id = result['request']

    while True:
        time.sleep(5)
        response = requests.get(f"https://2captcha.com/res.php?key={API_KEY}&action=get&id={captcha_id}&json=1")
        result = response.json()

        if result['status'] == 1:
            print("Капча решена успешно.")
            return result['request']
        elif result['request'] == 'CAPCHA_NOT_READY':
            print("Капча еще не решена, ожидаем...")
            continue
        else:
            raise Exception(f"Ошибка при решении капчи: {result['request']}")

def solve_recaptcha_v3(site_key, url, action='verify', min_score=0.3):
    payload = {
        'key': API_KEY,
        'method': 'userrecaptcha',
        'googlekey': site_key,
        'pageurl': url,
        'version': 'v3',
        'action': action,
        'min_score': min_score,
        'json': 1
    }

    response = requests.post('https://2captcha.com/in.php', data=payload)
    result = response.json()

    if result['status'] != 1:
        raise Exception(f"Ошибка при отправке капчи: {result['request']}")

    captcha_id = result['request']

    while True:
        time.sleep(5)
        response = requests.get(f"https://2captcha.com/res.php?key={API_KEY}&action=get&id={captcha_id}&json=1")
        result = response.json()

        if result['status'] == 1:
            print("Капча решена успешно.")
            return result['request']
        elif result['request'] == 'CAPCHA_NOT_READY':
            print("Капча еще не решена, ожидаем...")
            continue
        else:
            raise Exception(f"Ошибка при решении капчи: {result['request']}")

# Пример использования для reCAPTCHA v2
site_key_v2 = 'ваш_site_key_v2'
url_v2 = 'https://example.com'
recaptcha_token_v2 = solve_recaptcha_v2(site_key_v2, url_v2)
print(f"Полученный токен для reCAPTCHA v2: {recaptcha_token_v2}")

# Пример использования для reCAPTCHA v3
site_key_v3 = 'ваш_site_key_v3'
url_v3 = 'https://example.com'
recaptcha_token_v3 = solve_recaptcha_v3(site_key_v3, url_v3)
print(f"Полученный токен для reCAPTCHA v3: {recaptcha_token_v3}")
Enter fullscreen mode Exit fullscreen mode

Однако, перед тем как использовать предоставленный скрипт, внимательно ознакомьтесь с рекомендациями сервиса, по распознаванию того или иного типа reCAPTCHA, чтобы иметь представление о том, как работает этот код.

Также, не забудьте подставить в коде ваш ключ АПИ и конечно же, установить необходимые модули.

JavaScript и reCAPTCHA, как распознать reCAPTCHA на javascript с помощью модулей

Второй по популярности язык, для которого пользователи ищут способы обхода reCAPTCHA – node js, примерно 3 из 10 запросов по обходу reCAPTCHA приходятся на этот язык программирования.

Тут ситуация точно такая же, как и с предыдущим языком. Не рассматривайте этот список, как список именно лучших в своем классе модулей. Только популярные у поисковых машин инструменты, не более того. Никаких завышенных ожиданий, прошу!

Как и в случае с Python проще всего распознать reCAPTCHA через специальные модули, тем более, что сервисы распознавания капчи заинтересованы в упрощении работы для своих клиентов и многие создают и поддерживают такие модули, вот список наиболее популярных из них.

Image description

Модуль для распознавания reCAPTCHA с использованием Javascript

Официальный модуль для node js от сервиса распознавания капчи 2капча, поддерживает большинство известных типов капчи, в том числе reCAPTCHA. Важное отличие этого модуля от остальных — поддержка TypeScript что делает его удобным для разработки различных приложений.

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

Javascript модуль 2captcha для обхода reCAPTCHA

Также является официальным модулем для распознавания основных видов капчи от сервиса 2капча и поддерживает все те же настройки, что и предыдущий модуль (за исключение поддержки TypeScript), но мне показалось, что он создан больше с упором на простоту интеграции и быстрое начало работы.

Он более легкий, чем предыдущий и он как и его предшественник решает главную задачу — обходит reCAPTCHA. Так что если вам просто необходимо, чтобы ваш скрипт (программа), написанная на node js решала reCAPTCHA, используйте этот модуль, а если нужна более глубокая интеграция, присмотритесь к предыдущему модулю.

Модуль для обхода Рекапчи на Javascript

Модуль заточенный для интеграции с Puppeteer и позволяет решать reCAPTCHA и другие популярные виды капчи.

Помимо того, что этот модуль заточен под Puppeteer, он предоставляет возможность выбора провайдера, решающего капчу, что также позволяет настроить перебор сервисов (как было описано в блоке про модули для Python).

Хочется отметить, что два предыдущих модуля могут быть интегрированы в Puppeteer, но captcha-solver предоставлет решение «из коробки», то есть поставил и забыл, тогда как в случае с 2captcha и 2captcha-javascript может потребоваться ручная обработка результатов или настройка этой обработки.

Javascript модуль чтобы обойти reCAPTCHA

Модуль от сторонних разработчиков, который поддерживает решение reCAPTCHA, а также некоторых других популярных типов капчи. В модуле интегрировано несколько сервисов распознавания капчи, что позволяет настроить перебор сервисов (один сделать главным, а остальные резервными).

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

Как обойти reCAPTCHA на Node js

Как в случае с Python, для тех, кто не любит уже готовые решения, ниже приведу скрипт для решения капчи с использованием языка программирования node js. Напоминаю, не забудьте установить необходимые модули для работы кода, в том числе:

axios
Enter fullscreen mode Exit fullscreen mode

Установить его можно с помощью такой команды –

npm install axios
Enter fullscreen mode Exit fullscreen mode

Вот и сам код:

const axios = require('axios');
const sleep = require('util').promisify(setTimeout);

const API_KEY = 'ВАШ_API_КЛЮЧ_2CAPTCHA'; // Замените на ваш реальный API ключ

// Функция для решения reCAPTCHA v2
async function solveReCaptchaV2(siteKey, pageUrl) {
    try {
        // Отправляем запрос на решение капчи
        const sendCaptchaResponse = await axios.post(`http://2captcha.com/in.php`, null, {
            params: {
                key: API_KEY,
                method: 'userrecaptcha',
                googlekey: siteKey,
                pageurl: pageUrl,
                json: 1
            }
        });

        if (sendCaptchaResponse.data.status !== 1) {
            throw new Error(`Ошибка при отправке капчи: ${sendCaptchaResponse.data.request}`);
        }

        const requestId = sendCaptchaResponse.data.request;
        console.log(`Капча отправлена, ID запроса: ${requestId}`);

        // Ожидаем решение капчи
        while (true) {
            await sleep(5000); // Ждем 5 секунд перед следующим запросом

            const getResultResponse = await axios.get(`http://2captcha.com/res.php`, {
                params: {
                    key: API_KEY,
                    action: 'get',
                    id: requestId,
                    json: 1
                }
            });

            if (getResultResponse.data.status === 1) {
                console.log('Капча решена успешно.');
                return getResultResponse.data.request;
            } else if (getResultResponse.data.request === 'CAPCHA_NOT_READY') {
                console.log('Капча еще не решена, ожидаем...');
            } else {
                throw new Error(`Ошибка при решении капчи: ${getResultResponse.data.request}`);
            }
        }
    } catch (error) {
        console.error(`Произошла ошибка: ${error.message}`);
    }
}

// Функция для решения reCAPTCHA v3
async function solveReCaptchaV3(siteKey, pageUrl, action = 'verify', minScore = 0.3) {
    try {
        // Отправляем запрос на решение капчи
        const sendCaptchaResponse = await axios.post(`http://2captcha.com/in.php`, null, {
            params: {
                key: API_KEY,
                method: 'userrecaptcha',
                googlekey: siteKey,
                pageurl: pageUrl,
                version: 'v3',
                action: action,
                min_score: minScore,
                json: 1
            }
        });

        if (sendCaptchaResponse.data.status !== 1) {
            throw new Error(`Ошибка при отправке капчи: ${sendCaptchaResponse.data.request}`);
        }

        const requestId = sendCaptchaResponse.data.request;
        console.log(`Капча отправлена, ID запроса: ${requestId}`);

        // Ожидаем решение капчи
        while (true) {
            await sleep(5000); // Ждем 5 секунд перед следующим запросом

            const getResultResponse = await axios.get(`http://2captcha.com/res.php`, {
                params: {
                    key: API_KEY,
                    action: 'get',
                    id: requestId,
                    json: 1
                }
            });

            if (getResultResponse.data.status === 1) {
                console.log('Капча решена успешно.');
                return getResultResponse.data.request;
            } else if (getResultResponse.data.request === 'CAPCHA_NOT_READY') {
                console.log('Капча еще не решена, ожидаем...');
            } else {
                throw new Error(`Ошибка при решении капчи: ${getResultResponse.data.request}`);
            }
        }
    } catch (error) {
        console.error(`Произошла ошибка: ${error.message}`);
    }
}

// Пример использования для reCAPTCHA v2
(async () => {
    const siteKeyV2 = 'ВАШ_SITE_KEY_V2'; // Замените на реальный site key
    const pageUrlV2 = 'https://example.com'; // Замените на реальный URL страницы

    const tokenV2 = await solveReCaptchaV2(siteKeyV2, pageUrlV2);
    console.log(`Полученный токен для reCAPTCHA v2: ${tokenV2}`);
})();

// Пример использования для reCAPTCHA v3
(async () => {
    const siteKeyV3 = 'ВАШ_SITE_KEY_V3'; // Замените на реальный site key
    const pageUrlV3 = 'https://example.com'; // Замените на реальный URL страницы
    const action = 'homepage'; // Замените на соответствующее действие
    const minScore = 0.5; // Задайте минимальный допустимый балл

    const tokenV3 = await solveReCaptchaV3(siteKeyV3, pageUrlV3, action, minScore);
    console.log(`Полученный токен для reCAPTCHA v3: ${tokenV3}`);
})();
Enter fullscreen mode Exit fullscreen mode

PHP и reCAPTCHA, как распознать reCAPTCHA на php с помощью модулей

И третий по популярности язык, для которого пользователи ищут способ обхода reCAPTCHA — php. Предлагаю начать с модулей, как и в первых двух случаях и закончить кодом. Итак, наиболее популярные модули для решения reCAPTCHA на PHP следующие:

Модуль для обхода reCAPTCHA в Хроме

Этот модуль позволяет легко интегрировать API 2Captcha в ваш PHP-код для решения CAPTCHA. Он поддерживает такие типы CAPTCHA, как ReCaptcha, FunCaptcha, GeeTest, и другие. Модуль предназначен для быстрой настройки и использования, включая поддержку текстовых CAPTCHA и ReCaptcha v3. Он также поддерживает различные методы для работы с изображениями и аудиофайлами.

Как распознать reCAPTCHA используя PHP

Модуль, предоставляющий удобный интерфейс для интеграции с различными CAPTCHA-сервисами, включая 2Captcha. Поддерживает различные типы CAPTCHA, такие как reCAPTCHA и FunCaptcha. Этот модуль ориентирован на легкость использования и быструю настройку.

Фактически, если сравнить два этих модуля, то первый разработан сервисом 2captcha, а второй сообществом разработчиков и оба решают одни и те же задачи и примерно одинаковый набор функционала. Однако, второй модуль может быть менее оперативен в вопросах обновлений, в отличие от официального модуля.

Как распознать reCAPTCHA на PHP

Ну и для тех, кто не привык использовать готовые модули, вот код для интеграции напрямую. Код использует стандартные функции PHP, такие как file_get_contents и json_decode, вот сам код:

<?php

function solveRecaptchaV2($apiKey, $siteKey, $url) {
    $requestUrl = "http://2captcha.com/in.php?key={$apiKey}&method=userrecaptcha&googlekey={$siteKey}&pageurl={$url}&json=1";

    $response = file_get_contents($requestUrl);
    $result = json_decode($response, true);

    if ($result['status'] != 1) {
        throw new Exception("Ошибка при отправке капчи: " . $result['request']);
    }

    $captchaId = $result['request'];

    while (true) {
        sleep(5);
        $resultUrl = "http://2captcha.com/res.php?key={$apiKey}&action=get&id={$captchaId}&json=1";
        $response = file_get_contents($resultUrl);
        $result = json_decode($response, true);

        if ($result['status'] == 1) {
            return $result['request'];
        } elseif ($result['request'] == 'CAPCHA_NOT_READY') {
            continue;
        } else {
            throw new Exception("Ошибка при решении капчи: " . $result['request']);
        }
    }
}

function solveRecaptchaV3($apiKey, $siteKey, $url, $action = 'verify', $minScore = 0.3) {
    $requestUrl = "http://2captcha.com/in.php?key={$apiKey}&method=userrecaptcha&googlekey={$siteKey}&pageurl={$url}&version=v3&action={$action}&min_score={$minScore}&json=1";

    $response = file_get_contents($requestUrl);
    $result = json_decode($response, true);

    if ($result['status'] != 1) {
        throw new Exception("Ошибка при отправке капчи: " . $result['request']);
    }

    $captchaId = $result['request'];

    while (true) {
        sleep(5);
        $resultUrl = "http://2captcha.com/res.php?key={$apiKey}&action=get&id={$captchaId}&json=1";
        $response = file_get_contents($resultUrl);
        $result = json_decode($response, true);

        if ($result['status'] == 1) {
            return $result['request'];
        } elseif ($result['request'] == 'CAPCHA_NOT_READY') {
            continue;
        } else {
            throw new Exception("Ошибка при решении капчи: " . $result['request']);
        }
    }
}

// Пример использования для reCAPTCHA v2
$apiKey = 'ВАШ_API_КЛЮЧ_2CAPTCHA';
$siteKeyV2 = 'ВАШ_SITE_KEY_V2';
$urlV2 = 'https://example.com';

try {
    $tokenV2 = solveRecaptchaV2($apiKey, $siteKeyV2, $urlV2);
    echo "Полученный токен для reCAPTCHA v2: {$tokenV2}\n";
} catch (Exception $e) {
    echo "Ошибка: " . $e->getMessage() . "\n";
}

// Пример использования для reCAPTCHA v3
$siteKeyV3 = 'ВАШ_SITE_KEY_V3';
$urlV3 = 'https://example.com';
$action = 'homepage'; // Укажите соответствующее действие
$minScore = 0.5; // Укажите минимальный допустимый балл

try {
    $tokenV3 = solveRecaptchaV3($apiKey, $siteKeyV3, $urlV3, $action, $minScore);
    echo "Полученный токен для reCAPTCHA v3: {$tokenV3}\n";
} catch (Exception $e) {
    echo "Ошибка: " . $e->getMessage() . "\n";
}

?>
Enter fullscreen mode Exit fullscreen mode

Также напоминаю о необходимости заменить некоторые параметры в коде, в частности:

$apiKey = 'ВАШ_API_КЛЮЧ_2CAPTCHA';
 $siteKeyV2 = 'ВАШ_SITE_KEY_V2';
$urlV2 = 'https://example.com';
Enter fullscreen mode Exit fullscreen mode

Image description

Таким образом, используя приведенные примеры, вы можете закрыть большую часть вопросов, связанных с распознаванием reCAPTCHA. Можете задавать вопросы в комментариях, если они остались!

Top comments (0)