C¨®mo resolver CAPTCHA en el navegador usando la API de CapSolver

Ad¨¦lia Cruz
Neural Network Developer
04-Sep-2025

El uso del navegador es una potente biblioteca de Python de c¨®digo abierto que permite a los agentes de IA controlar los navegadores web para automatizar tareas como la extracci¨®n de datos, el llenado de formularios y las actividades repetitivas en l¨ªnea. Al aprovechar Playwright para la automatizaci¨®n del navegador e integrarse con modelos de lenguaje extenso (LLM) como los modelos GPT de OpenAI, el uso del navegador permite a los usuarios emitir comandos de lenguaje natural, haci¨¦ndolo accesible incluso para aquellos sin amplios conocimientos de programaci¨®n. Sin embargo, un desaf¨ªo com¨²n en la automatizaci¨®n web es encontrar CAPTCHA, que est¨¢n dise?ados para bloquear los scripts automatizados y pueden interrumpir los flujos de trabajo del uso del navegador.
CapSolver es un servicio impulsado por IA que se especializa en resolver varios tipos de CAPTCHA, incluyendo reCAPTCHA y Cloudflare Turnstile. Al integrar CapSolver con el uso del navegador, puede asegurarse de que sus tareas de automatizaci¨®n contin¨²en sin problemas sin requerir intervenci¨®n manual para resolver los CAPTCHA.
Este art¨ªculo proporciona una gu¨ªa paso a paso sobre c¨®mo integrar CapSolver con el uso del navegador para manejar los CAPTCHA de manera efectiva. Cubriremos la configuraci¨®n necesaria, proporcionaremos un ejemplo de c¨®digo completo y compartiremos las mejores pr¨¢cticas para ayudarlo a comenzar.
Descripci¨®n general y casos de uso del navegador
Browser-use es una biblioteca de Python que simplifica la automatizaci¨®n web al permitir que los agentes de IA interact¨²en con los sitios web a trav¨¦s de instrucciones de lenguaje natural. Utiliza Playwright en segundo plano para controlar navegadores como Chromium, Firefox y WebKit, e integra con LLM para interpretar y ejecutar comandos de usuario. Esto hace que el uso del navegador sea ideal para automatizar tareas complejas sin escribir c¨®digo extenso.
Casos de uso
El uso del navegador admite una variedad de tareas de automatizaci¨®n, que incluyen:
- Extracci¨®n de datos: Extraer datos de sitios web para investigaci¨®n de mercado, monitoreo de precios o agregaci¨®n de contenido.
- Llenado de formularios: Automatizar el proceso de completar formularios en l¨ªnea con datos de varias fuentes, como solicitudes de empleo o registros de cuentas.
- Automatizaci¨®n de tareas: Realizar tareas repetitivas como iniciar sesi¨®n en cuentas, navegar por sitios web o hacer clic en botones.
Estas tareas a menudo implican interactuar con sitios web que implementan CAPTCHA para evitar el acceso automatizado, lo que hace que una soluci¨®n confiable para resolver CAPTCHA sea esencial para una automatizaci¨®n ininterrumpida.
Por qu¨¦ se necesita la resoluci¨®n de CAPTCHA
Los sitios web a menudo implementan defensas anti-bot como CAPTCHA para bloquear el acceso automatizado, el correo no deseado y las actividades maliciosas. Estos CAPTCHA, dise?ados para diferenciar a los humanos de los bots con desaf¨ªos como hacer clic en casillas de verificaci¨®n o resolver rompecabezas de im¨¢genes, representan un obst¨¢culo significativo para la extracci¨®n de datos web. Al automatizar tareas con el uso del navegador, encontrar un CAPTCHA puede detener el proceso por completo, evitando que la herramienta extraiga los datos deseados sin intervenci¨®n manual.
Los tipos comunes de CAPTCHA incluyen:
Tipo de CAPTCHA | Descripci¨®n |
---|---|
reCAPTCHA v2 | Requiere que los usuarios marquen una casilla o seleccionen im¨¢genes seg¨²n una solicitud. |
reCAPTCHA v3 | Utiliza un sistema de puntuaci¨®n para evaluar el comportamiento del usuario, a menudo invisible para los usuarios. |
Cloudflare Turnstile | Una alternativa de CAPTCHA centrada en la privacidad que minimiza la interacci¨®n del usuario. |
Para la extracci¨®n de datos web, este es un problema cr¨ªtico: los CAPTCHA est¨¢n espec¨ªficamente dise?ados para frustrar el tipo de automatizaci¨®n en la que conf¨ªa el uso del navegador para extraer datos de los sitios web. Sin una forma de evitar estas barreras, los esfuerzos de extracci¨®n de datos se paralizan, lo que hace que la automatizaci¨®n sea ineficaz. Afortunadamente, la integraci¨®n de la API de CapSolver con el uso del navegador proporciona una soluci¨®n poderosa. CapSolver resuelve autom¨¢ticamente estos CAPTCHA, lo que permite que el uso del navegador pase a trav¨¦s de las defensas anti-bot y extraiga datos con ¨¦xito sin interrupciones. Ya sea que se trate de reCAPTCHA v2 o Cloudflare Turnstile, CapSolver garantiza que el uso del navegador pueda abordar una amplia gama de desaf¨ªos de CAPTCHA, lo que lo convierte en una herramienta esencial para una extracci¨®n de datos fluida y eficiente de sitios web protegidos.
Esta integraci¨®n es un cambio de juego para cualquiera que busque extraer datos de sitios que usan CAPTCHA, ya que elimina la necesidad de entrada manual y mantiene el proceso de extracci¨®n de datos web funcionando sin problemas.
C¨®mo usar CapSolver para manejar CAPTCHA
CapSolver ofrece una API que puede resolver varios CAPTCHA utilizando algoritmos de IA avanzados. Para integrar CapSolver con el uso del navegador, puede definir una acci¨®n personalizada utilizando el decorador @controller.action
. Esta acci¨®n detectar¨¢ CAPTCHA en una p¨¢gina web, extraer¨¢ la informaci¨®n necesaria (por ejemplo, la clave del sitio para reCAPTCHA), llamar¨¢ a la API de CapSolver para obtener una soluci¨®n e inyectar¨¢ la soluci¨®n en la p¨¢gina.
Pasos para integrar CapSolver con el uso del navegador
- Reg¨ªstrate en CapSolver: Crea una cuenta en CapSolver, agrega fondos y obt¨¦n tu clave API.
- Configura el uso del navegador: Instala el uso del navegador y sus dependencias, y configura tu entorno con claves API para un proveedor de LLM (por ejemplo, OpenAI).
- Instala las dependencias: Usa Python e instala los paquetes necesarios:
browser-use
,playwright
yrequests
. - Define una acci¨®n personalizada: Crea una acci¨®n personalizada en tu script de uso del navegador para manejar CAPTCHA usando la API de CapSolver.
- Ejecuta el agente: Instruye al agente de IA para que llame a la acci¨®n personalizada cuando se encuentre un CAPTCHA durante la ejecuci¨®n de la tarea.
Fragmento de c¨®digo clave
A continuaci¨®n, se muestra un ejemplo de una acci¨®n personalizada para resolver un reCAPTCHA v2 utilizando la API de CapSolver:
python
import requests
import time
from browser_use import Controller, ActionResult
from playwright.async_api import Page
CAPSOLVER_API_KEY = 'YOUR_CAPSOLVER_API_KEY'
@controller.action('Solve CAPTCHA', domains=['*'])
async def solve_captcha(page: Page) -> ActionResult:
if await page.query_selector('.g-recaptcha'):
site_key = await page.evaluate("document.querySelector('.g-recaptcha').getAttribute('data-sitekey')")
page_url = page.url
# Create task with CapSolver
response = requests.post('https://api.capsolver.com/createTask', json={
'clientKey': CAPSOLVER_API_KEY,
'task': {
'type': 'ReCaptchaV2TaskProxyLess',
'websiteURL': page_url,
'websiteKey': site_key,
}
})
task_id = response.json().get('taskId')
if not task_id:
return ActionResult(success=False, message='Failed to create CapSolver task')
# Poll for solution
while True:
time.sleep(5)
result_response = requests.post('https://api.capsolver.com/getTaskResult', json={
'clientKey': CAPSOLVER_API_KEY,
'taskId': task_id
})
result = result_response.json()
if result.get('status') == 'ready':
solution = result.get('solution', {}).get('gRecaptchaResponse')
if solution:
await page.evaluate(f"document.getElementById('g-recaptcha-response').innerHTML = '{solution}';")
return ActionResult(success=True, message='CAPTCHA solved')
else:
return ActionResult(success=False, message='No solution found')
elif result.get('status') == 'failed':
return ActionResult(success=False, message='CapSolver failed to solve CAPTCHA')
return ActionResult(success=False, message='No CAPTCHA found')
Este fragmento define una acci¨®n personalizada que verifica si hay un elemento reCAPTCHA v2, extrae la clave del sitio, crea una tarea con CapSolver, consulta la soluci¨®n e inyecta el token en la p¨¢gina.
Ejemplo de c¨®digo completo + explicaci¨®n paso a paso
A continuaci¨®n, se muestra un ejemplo de c¨®digo completo que demuestra c¨®mo integrar CapSolver con el uso del navegador para resolver CAPTCHA.
Requisitos previos
Aseg¨²rese de tener los paquetes necesarios instalados:
bash
pip install browser-use playwright requests
playwright install
Configura tu entorno con las claves API necesarias. Crea un archivo .env
con tus claves API de OpenAI y CapSolver:
env
OPENAI_API_KEY=your_openai_api_key
CAPSOLVER_API_KEY=your_capsolver_api_key
Ejemplo de c¨®digo completo
Crea un script de Python con el siguiente contenido:
python
import os
import asyncio
import requests
from dotenv import load_dotenv
from browser_use import Agent, Controller, ActionResult
from browser_use.browser import BrowserSession
from browser_use.llm import ChatOpenAI
from playwright.async_api import Page
# Load environment variables from .env file
load_dotenv()
CAPSOLVER_API_KEY = os.getenv('CAPSOLVER_API_KEY')
controller = Controller()
@controller.action('Solve CAPTCHA', domains=['*'])
async def solve_captcha(page) -> ActionResult:
if await page.query_selector('.g-recaptcha'):
site_key = await page.evaluate("document.querySelector('.g-recaptcha').getAttribute('data-sitekey')")
page_url = page.url
response = requests.post('https://api.capsolver.com/createTask', json={
'clientKey': CAPSOLVER_API_KEY,
'task': {
'type': 'ReCaptchaV2TaskProxyLess',
'websiteURL': page_url,
'websiteKey': site_key,
}
})
task_id = response.json().get('taskId')
print(task_id)
if not task_id:
return ActionResult(success=False, message='Failed to create CapSolver task')
while True:
await asyncio.sleep(5)
result_response = requests.post('https://api.capsolver.com/getTaskResult', json={
'clientKey': CAPSOLVER_API_KEY,
'taskId': task_id
})
result = result_response.json()
print(f"CAPTCHA result status: {result.get('status')}")
if result.get('status') == 'ready':
solution = result.get('solution', {}).get('gRecaptchaResponse')
print(f"CAPTCHA solution: {solution}")
if solution:
print("Submitting CAPTCHA solution...")
# Try both possible input fields for the CAPTCHA token
await page.evaluate(f"""
// Try the standard g-recaptcha-response field
var gRecaptchaResponse = document.getElementById('g-recaptcha-response');
if (gRecaptchaResponse) {{
gRecaptchaResponse.innerHTML = '{solution}';
var event = new Event('input', {{ bubbles: true }});
gRecaptchaResponse.dispatchEvent(event);
}}
// Also try the recaptcha-token field
var recaptchaToken = document.getElementById('recaptcha-token');
if (recaptchaToken) {{
recaptchaToken.value = '{solution}';
var event = new Event('input', {{ bubbles: true }});
recaptchaToken.dispatchEvent(event);
}}
""")
# Wait a moment for the token to be processed
await asyncio.sleep(2)
print("Token injected successfully! CAPTCHA solved.")
# Method 2: Click submit button directly using the correct selector
print("Now clicking submit button...")
try:
# Use the specific button selector you provided
submit_button = await page.query_selector("body > main > form > fieldset > button")
if submit_button:
await submit_button.click()
print("? Submit button clicked successfully!")
else:
print("? Submit button not found!")
return ActionResult(success=False, message='Submit button not found')
except Exception as e:
print(f"? Error clicking submit button: {e}")
return ActionResult(success=False, message=f'Error clicking submit: {e}')
print("CAPTCHA solved and form submitted successfully!")
return ActionResult(success=True, message='CAPTCHA solved and form submitted')
else:
return ActionResult(success=False, message='No solution found')
elif result.get('status') == 'failed':
return ActionResult(success=False, message='CapSolver failed to solve CAPTCHA')
return ActionResult(success=False, message='No CAPTCHA found')
llm = ChatOpenAI(model="gpt-4o-mini")
async def main():
try:
print("? Starting browser-use CAPTCHA solver agent...")
# Simple task instruction for CAPTCHA solving and form submission
task = """Navigate to https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php and solve the CAPTCHA, then submit the form.
STEP 1: Navigate to the reCAPTCHA demo page: https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php
STEP 2: Wait for the page to fully load. You should see a form with input fields and a reCAPTCHA checkbox.
STEP 3: Look for a reCAPTCHA element (usually a checkbox that says "I'm not a robot" or similar).
STEP 4: Use the "solve_captcha" action to automatically solve the CAPTCHA and submit the form.
STEP 5: Report the final result.
Note: The solve_captcha action will handle both solving the CAPTCHA and submitting the form automatically."""
# Create browser session first
browser_session = BrowserSession()
# Create agent with the browser session
agent = Agent(
task=task,
llm=llm,
controller=controller,
browser_session=browser_session
)
print("? Running CAPTCHA solver agent...")
result = await agent.run()
print(f"? Agent completed: {result}")
# Keep browser open to see results
input('Press Enter to close the browser...')
await browser_session.close()
except Exception as e:
print(f"? Error: {e}")
if __name__ == "__main__":
asyncio.run(main())
Explicaci¨®n paso a paso
Paso | Descripci¨®n |
---|
| 1. Instalar Dependencias | Instala browser-use
, playwright
, y requests
usando pip install browser-use playwright requests
. Ejecuta playwright install
para instalar los navegadores necesarios. |
| 2. Configurar el Entorno | Crea un archivo .env
con tus claves de API de OpenAI y CapSolver para almacenar de forma segura las credenciales. |
| 3. Definir Acci¨®n Personalizada | Usa el decorador @controller.action
para definir solve_captcha
, que comprueba si hay un elemento reCAPTCHA v2, extrae la clave del sitio, llama a la API de CapSolver e inyecta la soluci¨®n en la p¨¢gina. |
| 4. Inicializar Controlador y Agente | Crea una instancia de Controller
, define la acci¨®n personalizada, inicializa el LLM (ej., ChatOpenAI con GPT-4o-mini), y crea el agente BrowserUse
con el controlador. |
| 5. Ejecutar el Agente | Proporciona una tarea que incluya instrucciones para resolver CAPTCHAs usando la acci¨®n personalizada si se encuentran. El agente navega a la URL especificada, detecta el CAPTCHA, llama a la acci¨®n personalizada y env¨ªa el formulario. |
| 6. Manejo de Errores | La acci¨®n personalizada incluye manejo de errores para los casos en que la tarea de CapSolver falla o no se encuentra ninguna soluci¨®n, devolviendo objetos ActionResult
apropiados. |
| 7. Limpieza | El agente gestiona autom¨¢ticamente los recursos del navegador, cerrando el navegador cuando la tarea se completa. |
Este ejemplo se centra en reCAPTCHA v2, pero puedes adaptarlo para otros tipos de CAPTCHA modificando el tipo de tarea (ej., AntiTurnstileTaskProxyLess
para Turnstile).
Recorrido de la Demo
Esta secci¨®n describe c¨®mo funciona la integraci¨®n usando una tarea de muestra para navegar a una p¨¢gina de demostraci¨®n con una casilla de verificaci¨®n reCAPTCHA v2 y enviar el formulario.
- Configuraci¨®n de la Tarea: La tarea indica al agente de IA que visite
https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php
, env¨ªe el formulario y resuelva cualquier CAPTCHA usando la acci¨®nsolve_captcha
. - Ejecuci¨®n del Agente: El agente Browser-use inicia un navegador controlado por Playwright y navega a la URL especificada.
- Detecci¨®n de CAPTCHA: El agente comprueba si hay un CAPTCHA buscando el elemento
.g-recaptcha
. Si lo encuentra, activa la acci¨®nsolve_captcha
. - Ejecuci¨®n de la Acci¨®n Personalizada: La acci¨®n
solve_captcha
extrae la clave del sitio y la URL de la p¨¢gina, crea una tarea con la API de CapSolver y sondea la soluci¨®n. - Inyecci¨®n de la Soluci¨®n: Una vez que se recibe la soluci¨®n, la acci¨®n inyecta el token en el campo
g-recaptcha-response
. - Env¨ªo del Formulario: El agente env¨ªa el formulario haciendo clic en el bot¨®n de env¨ªo, completando la tarea.
- Compleci¨®n de la Tarea: El agente devuelve el resultado, indicando el env¨ªo exitoso del formulario.
Visualmente, ver¨ªas el navegador navegar a la p¨¢gina de demostraci¨®n, la casilla de verificaci¨®n reCAPTCHA se marcar¨ªa autom¨¢ticamente despu¨¦s de que se inyecte la soluci¨®n y el formulario se enviar¨ªa correctamente.
Secci¨®n de Preguntas Frecuentes
Pregunta | Respuesta |
---|---|
?Qu¨¦ tipos de CAPTCHAs puede resolver CapSolver? | CapSolver admite reCAPTCHA v2/v3, Cloudflare Turnstile y m¨¢s. Consulta la documentaci¨®n de CapSolver para obtener una lista completa. |
?C¨®mo manejo diferentes tipos de CAPTCHA? | Modifica la acci¨®n personalizada para detectar el tipo de CAPTCHA (ej., busca elementos o atributos espec¨ªficos) y usa el tipo de tarea de CapSolver apropiado, como AntiTurnstileTaskProxyLess para Turnstile. |
?Qu¨¦ pasa si CapSolver no puede resolver el CAPTCHA? | Implementa una l¨®gica de reintento en la acci¨®n personalizada o notifica al usuario del fallo. Registra los errores para la depuraci¨®n y considera estrategias alternativas. |
?Puedo usar CapSolver con otras herramientas de automatizaci¨®n? | S¨ª, la API de CapSolver es compatible con cualquier herramienta que admita solicitudes HTTP, incluyendo Selenium, Puppeteer y Playwright. |
?Necesito proxies con CapSolver? | Los proxies pueden ser necesarios para CAPTCHAs espec¨ªficos de la regi¨®n o vinculados a la IP. CapSolver admite el uso de proxies; consulta su documentaci¨®n para obtener m¨¢s detalles. |
Conclusi¨®n
La integraci¨®n de CapSolver con Browser-use proporciona una soluci¨®n robusta para manejar CAPTCHAs en tareas de automatizaci¨®n web. Al definir una acci¨®n personalizada para resolver CAPTCHAs, puedes asegurarte de que tus agentes de IA naveguen por los sitios web sin problemas, incluso cuando se enfrentan a medidas anti-bot. Esta combinaci¨®n aprovecha la facilidad de uso de Browser-use y las potentes capacidades de resoluci¨®n de CAPTCHA de CapSolver para crear flujos de trabajo de automatizaci¨®n eficientes.
Para comenzar, reg¨ªstrate en CapSolver y explora Browser-use. Sigue las instrucciones de configuraci¨®n e implementa el ejemplo de c¨®digo proporcionado. Para obtener m¨¢s detalles, visita la documentaci¨®n de CapSolver y la documentaci¨®n de Browser-use. ?Prueba esta integraci¨®n en tu pr¨®ximo proyecto de automatizaci¨®n y experimenta la facilidad de resolver CAPTCHAs autom¨¢ticamente!
Bono para usuarios de Browser-use: Usa el c¨®digo promocional BROWSERUSE al recargar tu cuenta de CapSolver y recibe un cr¨¦dito extra exclusivo del 6% ¡ªsin l¨ªmites, sin vencimiento.
Navegadores y Herramientas Soportados
- Browser-use: Usa Playwright, soportando navegadores Chromium, Firefox y WebKit.
- CapSolver: Compatible con cualquier cliente con capacidad HTTP, incluyendo extensiones de navegador para Chrome y Firefox.
Aprende M¨¢s y Explora Otros Tipos de Frameworks
- Browser-use GitHub
- Sitio web oficial de CapSolver
- Documentaci¨®n de Playwright
- Documentaci¨®n de CapSolver
- Documentaci¨®n de Browser-use
Aviso de Cumplimiento: La informaci¨®n proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas est¨¢ estrictamente prohibido y ser¨¢ investigado. Nuestras soluciones para la resoluci¨®n de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos p¨²blicos. Fomentamos el uso responsable de nuestros servicios. Para obtener m¨¢s informaci¨®n, visite nuestros T¨¦rminos de Servicio y Pol¨ªtica de Privacidad.
M¨¢se

C¨®mo resolver cualquier versi¨®n de reCAPTCHA Enterprise v2, v2 invisible, v3, v3 Enterprise puntuaci¨®n 0.9
Domina la resoluci¨®n de cualquier versi¨®n de reCaptcha con CapSolver: Este gu¨ªa proporciona un tutorial paso a paso para resolver reCaptcha de manera efectiva, garantizando resultados precisos cada vez.

Alo¨ªsio V¨ªtor
11-Oct-2025

C¨®mo resolver captchas de imagen
Esta entrada de blog proporciona una gu¨ªa completa sobre c¨®mo resolver captchas de imagen utilizando CapSolver, una herramienta dise?ada para automatizar el proceso. Comienza explicando qu¨¦ es un captcha de imagen, seguido de una gu¨ªa paso a paso detallada sobre c¨®mo usar la API de CapSolver para resolver estos captchas. La gu¨ªa incluye ejemplos de las solicitudes y respuestas involucradas en el proceso. La entrada concluye con una nota sobre la eficiencia y la conveniencia de usar CapSolver para resolver captchas de imagen, convirti¨¦ndola en una fuente invaluable para quienes buscan automatizar tareas que involucran la resoluci¨®n de captchas.

Emma Foster
11-Oct-2025

C¨®mo resolver reCaptcha versi¨®n 2 Invisible
Este blog sirve como una gu¨ªa completa sobre c¨®mo resolver reCaptcha v2 invisible utilizando Capsolver. Proporciona una gu¨ªa paso a paso, desde enviar la informaci¨®n necesaria a Capsolver hasta verificar los resultados. El blog est¨¢ dise?ado para ser f¨¢cil de entender y seguir, haciendo que el proceso de implementar y resolver reCaptcha v2 invisible en tu sitio web sea r¨¢pido y eficiente. Es una gu¨ªa ¨²nica y extensa, asegurando que los lectores adquieran una comprensi¨®n completa del proceso sin ning¨²n plagio.

Ad¨¦lia Cruz
11-Oct-2025

Resolver reCaptcha v2 Enterprise
En el mundo digital, la seguridad y la comodidad del usuario a menudo se encuentran en extremos opuestos del espectro. Los CAPTCHAs, espec¨ªficamente reCaptcha, han sido fundamentales para equilibrar los dos aspectos. Sin embargo, ?qu¨¦ pasa si necesitas resolver las pruebas de reCaptcha a menudo complejas y que consumen mucho tiempo, especialmente la versi¨®n Enterprise de reCaptcha V2, para un prop¨®sito leg¨ªtimo como pruebas automatizadas? En este blog, te guiaremos a trav¨¦s del proceso de resolver reCaptcha V2 Enterprise utilizando la API de CapSolver.

Ad¨¦lia Cruz
11-Oct-2025

Resolver reCaptcha v3
Aprende a resolver reCaptcha V3 usando CapSolver: diversos tipos de tareas, integraci¨®n de API simple y soluciones efectivas para automatizaci¨®n y pruebas

Alo¨ªsio V¨ªtor
10-Oct-2025

C¨®mo resolver Captcha en Crawl4AI con CapSolver integraci¨®n
Extracci¨®n de datos web fluida con Crawl4AI & CapSolver: soluci¨®n autom¨¢tica de CAPTCHA, mayor eficiencia y extracci¨®n de datos robusta para la IA.

Ad¨¦lia Cruz
26-Sep-2025