AwsWafCaptcha: resolviendo AWS WAF
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
Propiedades | Tipo | Requerido | Descripción |
---|---|---|---|
type | String | Required | AntiAwsWafTask AntiAwsWafTaskProxyLess |
proxy | String | Optional | Uso de proxies |
websiteURL | String | Required | Devuelve la URL de la página con información relacionada con el captcha |
awsKey | String | Optional | El valor clave devuelto por la página captcha |
awsIv | String | Optional | El valor iv devuelto por la página captcha |
awsContext | String | Optional | El valor context devuelto por la página captcha |
awsChallengeJS | String | Optional | El enlace challenge.js devuelto por la página captcha |
awsApiJs | String | Optional | El enlace jsapi.js devuelto por la página captcha |
awsProblemUrl | String | Optional | URL de interfaz problem que contiene palabras clave como problem , num_solutions_required |
awsApiKey | String | Optional | valor api_key de la interfaz problem |
awsExistingToken | String | Optional | aws-waf-token utilizado en la última verificación |
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ón | Pasando parámetros | Prerrequisitos |
---|---|---|
situación 1 | websiteURL | El 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 2 | websiteURL 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-1 | websiteURL 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-2 | websiteURL 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 4 | websiteURL 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 5 | websiteURL 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"
})