reCAPTCHA v2 Enterprise использует тот же вызов флажков, что и стандартная версия 2, но проверяет токены через Google Enterprise API вместо общедоступной конечной точки siteverify. Процесс решения с помощью CaptchaAI практически идентичен — вы добавляете один параметр: enterprise=1.
В этом руководстве описывается обнаружение, извлечение параметров и решение с использованием рабочего кода Python и Node.js.
Не уверены, используете ли вы Enterprise или Standard? ЧитатьКак определить внедрение reCAPTCHA Enterpriseпервый.
Что вам нужно, прежде чем начать
| Требование | Подробности |
|---|---|
| CaptchaAI API-ключ | Получите один вcaptchaai.com/api.php |
| URL целевой страницы | Полный URL-адрес, по которому отображается reCAPTCHA. |
| Ключ сайта | Из атрибута data-sitekey |
| Флаг предприятия | Подтверждено с помощью тега сценария enterprise.js. |
| значение data-s (если присутствует) | Необязательный дополнительный токен в некоторых реализациях Enterprise. |
Шаг 1. Обнаружение внедрения Enterprise
Проверьте источник страницы по этим показателям:
// Enterprise script tag (NOT api.js)
// <script src="https://www.google.com/recaptcha/enterprise.js?render=SITEKEY"></script>
// Enterprise JavaScript object
// grecaptcha.enterprise.render(...)
// grecaptcha.enterprise.execute(...)
Если вы видите enterprise.js или grecaptcha.enterprise, это Enterprise. Если вы видите api.js и grecaptcha, это стандарт.
Шаг 2. Извлечение параметров
# Sitekey: from data-sitekey attribute
# <div class="g-recaptcha" data-sitekey="6LcR_RsTAAAA..." data-s="..."></div>
# Or from enterprise.js render parameter
# https://www.google.com/recaptcha/enterprise.js?render=6LcR_RsTAAAA...
Также проверьте наличие data-s — дополнительного токена сеанса, который требуется для некоторых реализаций Enterprise.
Шаг 3. Отправьте заявку на CaptchaAI.
import requests
params = {
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "6LcR_RsTAAAAAFJR-JhNbC6CC42wKCbR9Hq_kVCd",
"pageurl": "https://https://staging.example.com/qa-login",
"enterprise": 1, # Required for Enterprise
"json": 1
}
# Include data-s if present on the page
# params["data-s"] = "data-s-value-from-page"
response = requests.get("https://ocr.captchaai.com/in.php", params=params)
data = response.json()
task_id = data["request"]
print(f"Task ID: {task_id}")
const params = new URLSearchParams({
key: "YOUR_API_KEY",
method: "userrecaptcha",
googlekey: "6LcR_RsTAAAAAFJR-JhNbC6CC42wKCbR9Hq_kVCd",
pageurl: "https://https://staging.example.com/qa-login",
enterprise: 1,
json: 1,
});
const res = await fetch(`https://ocr.captchaai.com/in.php?${params}`);
const data = await res.json();
console.log(`Task ID: ${data.request}`);
Шаг 4: Опрос на результат
import time
for _ in range(40):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY",
"action": "get",
"id": task_id,
"json": 1
}).json()
if result.get("status") == 1:
token = result["request"]
print(f"Token: {token[:50]}...")
break
if result.get("request") != "CAPCHA_NOT_READY":
raise RuntimeError(f"Error: {result['request']}")
let token;
for (let i = 0; i < 40; i++) {
await new Promise((r) => setTimeout(r, 5000));
const res = await fetch(
`https://ocr.captchaai.com/res.php?${new URLSearchParams({
key: "YOUR_API_KEY", action: "get", id: taskId, json: 1,
})}`
);
const data = await res.json();
if (data.status === 1) { token = data.request; break; }
if (data.request !== "CAPCHA_NOT_READY") throw new Error(data.request);
}
Шаг 5. Внедрите токен
передача токена во внутренний QA endpoint такое же, как и в стандартной версии v2:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://https://staging.example.com/qa-login")
# Inject token into hidden field
driver.execute_script(
f'document.getElementById("g-recaptcha-response").innerHTML = "{token}";'
)
# Check for callback
callback = driver.execute_script(
'var el = document.querySelector(".g-recaptcha"); '
'return el ? el.getAttribute("data-callback") : null;'
)
if callback:
driver.execute_script(f'{callback}("{token}");')
else:
driver.find_element("css selector", "form").submit()
Полный рабочий пример
import requests
import time
def solve_recaptcha_v2_enterprise(api_key, sitekey, page_url, data_s=None):
params = {
"key": api_key, "method": "userrecaptcha",
"googlekey": sitekey, "pageurl": page_url,
"enterprise": 1, "json": 1
}
if data_s:
params["data-s"] = data_s
submit = requests.get("https://ocr.captchaai.com/in.php", params=params).json()
if submit.get("status") != 1:
raise RuntimeError(f"Submit error: {submit.get('request')}")
task_id = submit["request"]
for _ in range(40):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": api_key, "action": "get", "id": task_id, "json": 1
}).json()
if result.get("status") == 1:
return result["request"]
if result.get("request") != "CAPCHA_NOT_READY":
raise RuntimeError(f"Solve error: {result.get('request')}")
raise TimeoutError("Solve timed out after 200s")
# Usage
token = solve_recaptcha_v2_enterprise("YOUR_API_KEY", "6LcR_RsTAAAA...", "https://https://staging.example.com/qa-login")
print(f"Solved: {token[:50]}...")
Полный работоспособный пример
Нужен полноценный рабочий проект с настройкой среды, опросом, повторными попытками и обработкой ошибок?
Полный работоспособный пример см. на GitHub →.
Часто задаваемые вопросы
В чем единственная разница между вызовами стандартного и корпоративного API?
Добавьте enterprise=1 к вашему запросу CaptchaAI. Все остальное — имя метода, параметр sitekey, опрос — идентично.
Когда мне нужен параметр data-s?
Только если страница содержит атрибут data-s в блоке reCAPTCHA. Большинство реализаций Enterprise его не используют. Проверьте источник HTML.
CaptchaAI взимает другую плату для Enterprise?
Проверятьcaptchaai.comпо текущим ценам. Корпоративные решения могут использовать разное количество потоков.
Можно ли повторно использовать токены Enterprise?
Нет. Как и стандартная версия 2, токены Enterprise являются одноразовыми, срок их действия истекает примерно через 2 минуты.
Как узнать, что мое решение Enterprise не удалось?
Если целевой сайт по-прежнему блокирует вас после передача токена во внутренний QA endpoint, проверьте: (1) вы включили enterprise=1, (2) ключ сайта правильный, (3) data-s включен, если он присутствует, (4) токен был использован в течение 2 минут.
Начните решать reCAPTCHA v2 Enterprise
Получите ключ API по адресуcaptchaai.com/api.php. Добавьте enterprise=1 к существующему коду решения reCAPTCHA v2, и все готово.
Связанные руководства
- Как определить внедрение reCAPTCHA Enterprise
- Распространенные ошибки reCAPTCHA v2 Enterprise
- Как решить reCAPTCHA v2 с помощью API
- Стандартный или корпоративный reCAPTCHA v2