Как обойти рекапчу

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

Уточнение – весь код, который будет представлен в указанной статье подогтовн=лен на основании документации АПИ сервиса распознавания капчи 2капча

Это рекапча. Рекапча V2, V3 и т.п. рекапчи, которые созданы компанией Гугл в далеком 2007 году и с тех пор продолжает удерживать пальму первенства, периодически немного сдавая позиции конкурентам и отвоевывая их обратно.

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

Именно поэтому в сфере распознавания капчи, наиболее популярный ключевой запрос был и остается – «как распознать рекапчу». В данной статье сделаю небольшой анонс популярных решений – как обойти рекапчу на python, как обойти рекапчу на node js и т.п.

Как обойти рекапчу используя python

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

Я подготовил максимально универсальный код, который можно с небольшими доработками вставить в ваш скрипт, написанный на Питоне и решать рекапчу автоматически. Вот сам код:

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}")

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

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

Как обойти рекапчу на node js

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

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

axios

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

npm install axios

Сам код:

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}`); })();

Не забудьте, также, подставить в код свой ключ АПИ, вместо «'ВАШ_API_КЛЮЧ_2CAPTCHA'»

Как распознать рекапчу на PHP

И третий по популярности язык, для которого пользователи ищут способ обхода рекапчи – 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"; } ?> Также напоминаю о необходимости заменить некоторые параметры в коде, в частности: $apiKey = 'ВАШ_API_КЛЮЧ_2CAPTCHA'; $siteKeyV2 = 'ВАШ_SITE_KEY_V2'; $urlV2 = 'https://example.com';

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

3 комментария

Дак вроде есть немало библиотек, в три строки подключаемых, которые помогают с рекапчей. Просто пока что не понимаю, в чем резон использовать именно этот вариант.

Но вообще прикольно, конечно. Главное это на гитхаб залить, авось кто-то да наткнется.

1
Ответить

Прочитал ваш коммент и пошел дописывать статью - буду изучать библиотеки

1
Ответить

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

Ответить