Как обойти и решить капчу GeeTest автоматически
Как обойти капчу Geetest с помощью 2Captcha
Geetest CAPTCHA – одна из самых популярных систем защиты сайтов от автоматизированных запросов. Решение этой капчи вручную может быть сложным, а автоматизация требует специализированных сервисов, таких как 2Captcha. Geetest CAPTCHA представлена в двух основных версиях: V3 и V4.
В этом руководстве объясняется, как найти параметры капчи, отправить запрос в API 2Captcha v2 и автоматизировать процесс решения с помощью Python.
Как найти параметры Geetest V3
Для работы с Geetest V3 вам потребуются следующие параметры:
gt
→ Публичный ключ сайта (статический).challenge
→ Динамическая строка вызова (изменяется для каждой капчи).api_server
→ Домен API (нужен для некоторых сайтов).
Эти параметры можно найти в инструментах разработчика (DevTools) в функции initGeetest
.
Как найти параметры Geetest V4
Для Geetest V4 вам нужно найти параметр captcha_id
.
Шаги для поиска captcha_id
:
- Откройте DevTools в браузере.
- Перейдите на вкладку Network.
- Найдите запрос, связанный с капчей Geetest. В URL этого запроса будет
captcha_id
.
Отправка запроса на решение капчи в 2Captcha
Типы задач
Для решения Geetest CAPTCHA сервис 2Captcha поддерживает два типа задач:
GeeTestTaskProxyless
→ Использует внутренние прокси 2Captcha.GeeTestTask
→ Требует использования собственного прокси.
Обязательные параметры задачи
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
type |
String | Да | Тип задачи: GeeTestTaskProxyless или GeeTestTask . |
websiteURL |
String | Да | URL страницы, на которой загружается капча. |
gt |
String | Да | Параметр gt из Geetest V3. |
challenge |
String | Да | Параметр challenge из Geetest V3. |
geetestApiServerSubdomain |
String | Нет | Домен API Geetest, если требуется (например, api-na.geetest.com ). |
userAgent |
String | Нет | User-Agent браузера (рекомендуется). |
Как решить Geetest V4 через API v2
Без прокси
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GeeTestTaskProxyless",
"websiteURL": "https://2captcha.com/demo/geetest-v4",
"version": 4,
"initParameters": {
"captcha_id": "e392e1d7fd421dc63325744d5a2b9c73"
}
}
}
С прокси
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GeeTestTask",
"websiteURL": "https://2captcha.com/demo/geetest-v4",
"version": 4,
"initParameters": {
"captcha_id": "e392e1d7fd421dc63325744d5a2b9c73"
},
"proxyType": "http",
"proxyAddress": "1.2.3.4",
"proxyPort": "8080",
"proxyLogin": "user23",
"proxyPassword": "p4$w0rd"
}
}
Пример ответа API
{
"errorId": 0,
"status": "ready",
"solution": {
"captcha_id": "e392e1d7fd421dc63325744d5a2b9c73",
"lot_number": "e6c3bed2854f41f880662c48afff5dcb",
"pass_token": "fad5eb52fc83bf7617402fcccfb211a21e0aa1d1044",
"gen_time": "1693924478",
"captcha_output": "fN36ufW6cQN4SQ-JRDQC70nSq9UcQBg=="
},
"cost": "0.00299",
"ip": "1.2.3.4",
"createTime": 1692863536,
"endTime": 1692863556,
"solveCount": 1
}
Как решить Geetest V3 через API v2
Без прокси
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GeeTestTaskProxyless",
"websiteURL": "https://2captcha.com/demo/geetest",
"gt": "81388ea1fc187e0c335c0a8907ff2625",
"challenge": "2e2f0f65240058b683cb6ea21c303eea6n"
}
}
С прокси
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GeeTestTask",
"websiteURL": "https://2captcha.com/demo/geetest",
"gt": "81388ea1fc187e0c335c0a8907ff2625",
"challenge": "2e2f0f65240058b683cb6ea21c303eea6n",
"proxyType": "http",
"proxyAddress": "1.2.3.4",
"proxyPort": "8080",
"proxyLogin": "user23",
"proxyPassword": "p4$w0rd"
}
}
Реализация на Python
Пример кода для решения Geetest V3 CAPTCHA с использованием Python и API 2Captcha v2:
import requests
import time
API_KEY = "YOUR_2CAPTCHA_API_KEY"
# Данные капчи Geetest (замените на актуальные значения)
site_key = "your_gt_key"
challenge = "your_challenge_value"
page_url = "https://example.com"
# Шаг 1: Отправка запроса на решение капчи
task_data = {
"clientKey": API_KEY,
"task": {
"type": "GeeTestTaskProxyless",
"websiteURL": page_url,
"gt": site_key,
"challenge": challenge
}
}
response = requests.post("https://api.2captcha.com/createTask", json=task_data)
task_result = response.json()
if task_result["errorId"] != 0:
print("Ошибка:", task_result["errorDescription"])
exit()
task_id = task_result["taskId"]
print(f"Задача создана, ID: {task_id}")
# Шаг 2: Ожидание решения
for _ in range(30): # Проверка каждые 5 секунд (до 2.5 минут)
time.sleep(5)
res = requests.post("https://api.2captcha.com/getTaskResult", json={"clientKey": API_KEY, "taskId": task_id})
result = res.json()
if result["status"] == "ready":
print("Капча решена!")
solution = result["solution"]
break
else:
print("Не удалось получить решение вовремя.")
exit()
# Шаг 3: Использование решения
print("Решение:", solution)
Как использовать полученное решение
После получения решения капчи его необходимо отправить на целевой сайт. Обычно сайт отправляет решенные данные капчи в запросе, подобном этому:

Вам нужно найти запрос, который сайт отправляет на сервер и который содержит данные решенной капчи, то есть данные, полученные от сервиса. Следовательно, вам следует воспроизвести или сымитировать этот запрос, вставив полученные параметры.
Заключение
Использование 2Captcha API v2 для решения Geetest CAPTCHA — надежный и эффективный способ автоматизации. Благодаря поддержке прокси, высокой точности и быстрой обработке, интеграция с вашими проектами проходит легко.
Полезные ссылки
- Документация API 2Captcha
- Примеры кода на Python
- Примеры кода с использованием API V1 и официальных библиотек::python | javascript | go | ruby | php | java | csharp