Guía
Tarea (Token)
AWS WAF

AwsWafCaptcha: resolviendo AWS WAF

TIP

Crea la tarea con el método createTask y obtén el resultado con el método getTaskResult.

Los tipos de tarea que admitimos son:

  • AntiAwsWafTask: este tipo de tarea requiere tus propios proxies.
  • AntiAwsWafTaskProxyLess: este tipo de tarea no requiere tus propios proxies.

Crear una tarea

Crea una tarea de reconocimiento con el método createTask.

Estructura del objeto de tarea

PropiedadesTipoRequeridoDescripción
typeStringRequiredAntiAwsWafTask
AntiAwsWafTaskProxyLess
proxyStringOptionalUso de proxies
websiteURLStringRequiredDevuelve la URL de la página con información relacionada con el captcha
awsKeyStringOptionalEl valor clave devuelto por la página captcha
awsIvStringOptionalEl valor iv devuelto por la página captcha
awsContextStringOptionalEl valor context devuelto por la página captcha
awsChallengeJSStringOptionalEl enlace challenge.js devuelto por la página captcha
awsApiJsStringOptionalEl enlace jsapi.js devuelto por la página captcha
awsProblemUrlStringOptionalURL de interfaz problem que contiene palabras clave como problem, num_solutions_required
awsApiKeyStringOptionalvalor api_key de la interfaz problem
awsExistingTokenStringOptionalaws-waf-token utilizado en la última verificación
¿Qué parámetros debo pasar?

Si no sabe qué parámetros debe pasar a capsolver, consulte las siguientes situaciones diferentes para pasar parámetros distintos. Si ninguna se ajusta a su caso, póngase en contacto con nuestro servicio al cliente.

situaciónPasando parámetrosPrerrequisitos
situación 1websiteURLEl código de respuesta de la página captcha de AWS puede ser 405 y los siguientes parámetros se pueden encontrar en el HTML:
window.gokuProps = {"key":"AQID...","iv":"A6we...","context":"rGXm.."}
situación 2websiteURL
awsKey
awsIv
awsContext
awsChallengeJS
Bajo la condición previa del caso 1, si capsolver devuelve un mensaje de error:Captcha render unexpect status code XXX, please pass in the awsKey, awsIv, awsContext and awsChallengeJs parameters, Significa que el servidor no activó el captcha. Analice manualmente los parámetros key, iv y context y páselos a capsolver.
Precaución
Si recibe el error timeout metering, your parameters have expired, please update awsKey, awsIv, awsContext or awsChallengeJS., significa que los cuatro parámetros que ha pasado no coinciden entre sí o han expirado. Se recomienda analizar todos los parámetros en tiempo real en cada solicitud.
situación 3-1websiteURL
awsChallengeJS
Cuando la página no puede encontrar key, iv, context, pero tiene challenge.js, pase challenge.js a capsolver como el valor de awsChallengeJS.
situación 3-2websiteURL
awsApiJs
Según la situación 3-1, si no está claro de dónde proviene challenge.js, pero la página tiene jsapi.js, significa que challenge.js se ensambla a partir del código de jsapi.js, entonces jsapi.js se puede pasar directamente a capsolver como el valor de awsApiJs.
situación 4websiteURL
awsProblemUrl
Versión especial, cuando la página no puede encontrar key, iv, context, challenge.js, y solo tiene captcha.js, debe pasar la URL de la interfaz del problem a capsolver, awsProblemUrl debe contener valores como problem y num_solutions_required, que se pueden encontrar buscando visualSolutionsRequired en la página html.

Ejemplo completo de awsProblemUrl:https://ait.2608283a.us-east-1.captcha.awswaf.com/ait/ait/ait/problem?kind=visual&domain=www.amazon.com&locale=en-us&problem=gridcaptcha-5-0.15-0&num_solutions_required=2
situación 5websiteURL
awsApiKey
awsApiJs
awsExistingToken
Normalmente ocurre en situaciones que requieren verificación secundaria, la interfaz problem incluye una api_key (el valor de cada sitio web generalmente no cambia) como awsApiKey, la página tiene un jsapi.js como awsApiJs, y el aws-waf-token de la verificación anterior se pasa a capsolver como awsExistingToken

Ejemplo de solicitud

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "AntiAwsWafTask", // Required
        "websiteURL": "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest", // Required
        "awsKey": "AQIDAHjcYu/GjX+QlghicBg......shMIKvZswZemrVVqA==",  // Optional
        "awsIv": "CgAAFDIlckAAAAid",  // Optional
        "awsContext": "7DhQfG5CmoY90ZdxdHCi8WtJ3z......njNKULdcUUVEtxTk=",  // Optional
        "awsChallengeJS": "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb......a6c832/challenge.js",  // Optional
        "awsApiJs": "https://9175c2fd4189.edge.captcha-sdk.awswaf.com/9175c2fd4189/jsapi.js",  // Optional
        "awsProblemUrl": "https://ait...awswaf.com/ait/ait/ait/problem?kind=visual&...&problem=gridcaptcha-5-0.1-0&num_solutions_required=2",  // Optional
        "awsApiKey": "Sps+L2gV...",  // Optional
        "awsExistingToken": "5na16dg6-216a-...",  // Optional
        "proxy": "http:ip:port:user:pass" // socks5:ip:port:user:pass
    }
}

Después de enviar la tarea, deberías recibir en la respuesta un ‘ID de tarea’ si la operación es exitosa. Por favor, consulta errorCode: lista completa de errores si no recibiste el ID de tarea.

Ejemplo de respuesta

{
    "errorId": 0,
    "errorCode": "",
    "errorDescription": "",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Obtener resultados

Una vez que tengas el ID de tarea, debes enviarlo para obtener la solución. La estructura de la respuesta se explica en getTaskResult.

Dependiendo de la carga del sistema, obtendrás los resultados en un intervalo de 5 segundos a 30 segundos.

Ejemplo de solicitud

POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey": "YOUR_API_KEY",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Ejemplo de respuesta

{
  "errorId": 0,
  "taskId": "646825ef-9547-4a29-9a05-50a6265f9d8a",
  "status": "ready",
  "solution": {
    "cookie": "223d1f60-0e9f-4238-ac0a-e766b15a778e:EQoAf0APpGIKAAAA:AJam3OWpff1VgKIJxH4lGMMHxPVQ0q0R3CNtgcMbR4VvnIBSpgt1Otbax4kuqrgkEp0nFKanO5oPtwt9+Butf7lt0JNe4rZQwZ5IrEnkXvyeZQPaCFshHOISAFLTX7AWHldEXFlZEg7DjIc="
  }
}

Uso de la solicitud del SDK

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
    "type": "AntiAwsWafTask",
    "websiteURL": "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest",
    "proxy": "ip:port:user:pass"
})