NeuroCaptcha

Tipo de tarea

reCAPTCHA v2

RecaptchaV2Taskproxy propio

reCAPTCHA v2 es la casilla «No soy un robot» y su variante invisible. La API devuelve un token gRecaptchaResponse que se envía junto con el formulario de la página.

Con su proxy: la tarea se resuelve a través del proxy que indique, por lo que el token coincide con su IP. Las credenciales del proxy se eliminan tras la resolución.

Precio

0,60 US$por 1000 tareas

0,0006 US$ por tarea

Obtener clave de API

Métricas en vivo, 24 h

Las métricas en vivo de este tipo aparecerán en la página de estado tras el lanzamiento.

Parámetros de la tarea

ParámetroTipoobligatorioParámetros de la tarea
typestringobligatorioRecaptchaV2Task
websiteURLstringobligatorioURL completa de la página con el captcha.
websiteKeystringobligatorioClave del sitio (data-sitekey o el parámetro k de la solicitud anchor).
isInvisiblebooleanopcionaltrue para el reCAPTCHA v2 invisible (sin casilla).
recaptchaDataSValuestringopcionalValor de data-s, si la página lo usa (algunos servicios de Google).
userAgentstringopcionalUser-Agent con el que se resuelve; use el mismo al enviar el token.
cookiesstringopcionalCookies del sitio de destino en formato key1=value1; key2=value2.
proxyTypestringobligatoriohttp, socks4 o socks5.
proxyAddressstringobligatorioDirección IP o host del proxy (solo direcciones públicas).
proxyPortintegerobligatorioPuerto del proxy.
proxyLoginstringopcionalUsuario del proxy, si requiere autenticación.
proxyPasswordstringopcionalContraseña del proxy. Se elimina tras resolver la tarea.

Ejemplo

import time
import requests

API = "https://"
KEY = "YOUR_API_KEY"

# 1. create a task: the price is held, not charged
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "RecaptchaV2Task",
        "websiteURL": "https://example.com/login",
        "websiteKey": "6Le-SITE-KEY",
        "proxyType": "http",
        "proxyAddress": "203.0.113.10",
        "proxyPort": 8080,
        "proxyLogin": "user",
        "proxyPassword": "pass",
    },
}).json()
if task["errorId"]:
    raise RuntimeError(task["errorCode"])

# 2. poll the result (or pass "callbackUrl" and get a signed webhook)
while True:
    time.sleep(3)
    res = requests.post(f"{API}/getTaskResult",
                        json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if res["errorId"]:
        raise RuntimeError(res["errorCode"])
    if res["status"] == "ready":
        print(res["solution"]["gRecaptchaResponse"])
        break

Otros tipos de tareas