Looking for international version of our service? Go to 2captcha.com

Туториалы по обходу капчи

Как обойти и решить капчу GeeTest автоматически

Как распознать, решить обойти капчу 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:

  1. Откройте DevTools в браузере.
  2. Перейдите на вкладку Network.
  3. Найдите запрос, связанный с капчей Geetest. В URL этого запроса будет captcha_id.

Отправка запроса на решение капчи в 2Captcha

Типы задач

Для решения Geetest CAPTCHA сервис 2Captcha поддерживает два типа задач:

  1. GeeTestTaskProxyless → Использует внутренние прокси 2Captcha.
  2. 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 — надежный и эффективный способ автоматизации. Благодаря поддержке прокси, высокой точности и быстрой обработке, интеграция с вашими проектами проходит легко.

Полезные ссылки