Cómo resolver Captcha en Agno con integración de CapSolver

Adélia Cruz
Neural Network Developer
13-Jan-2026

A medida que la automatización impulsada por IA se vuelve más práctica en flujos de trabajo del mundo real, Agno ha surgido como un marco rápido y orientado a la privacidad para construir sistemas multiagente autónomos. Cuando estos agentes interactúan con sitios web mediante scraping, recolección de datos o navegación automatizada, los CAPTCHA a menudo se convierten en un problema.
CapSolver ayuda a resolver este problema permitiendo a los agentes de Agno manejar de manera confiable las páginas protegidas por CAPTCHA sin interrumpir el flujo de automatización. Juntos, Agno y CapSolver hacen más fácil construir automatizaciones escalables y sin intervención que funcionan en sitios web reales.
¿Qué es Agno?
Agno es un marco y entorno de ejecución multiagente de código abierto para construir sistemas de IA que funcionan completamente dentro de su propia infraestructura. Está diseñado con rendimiento y privacidad en mente: sin plano de control externo y sin datos que salgan de su entorno.
Características clave de Agno
- Alto rendimiento: Significativamente más rápido y eficiente en memoria que muchos marcos de agentes
- Orientado a la privacidad: Autohospedado, con control total sobre los datos y la ejecución
- Sistemas multiagente: Los agentes pueden colaborar, especializarse y coordinar tareas
- Flexibilidad de modelos: Soporta OpenAI, Anthropic, Google y muchos otros proveedores
- Entorno listo para producción: Incluye un entorno basado en FastAPI para desplegar agentes
- Herramientas ricas: Herramientas integradas para automatización web, APIs, bases de datos, etc.
- Memoria persistente: Los agentes pueden retener contexto entre sesiones
Arquitectura principal
| Componente | Descripción |
|---|---|
| Agentes | Unidades de IA autónomas con memoria, herramientas y integración de modelos |
| Equipos | Grupos de agentes colaborando en tareas complejas |
| Flujos de trabajo | Pipelines estructurados para ejecución predecible |
| AgentOS | Entorno basado en FastAPI para despliegue en producción |
¿Qué es CapSolver?
CapSolver es un servicio líder para resolver CAPTCHA que proporciona soluciones impulsadas por IA para evitar diversos desafíos de CAPTCHA. Con soporte para múltiples tipos de CAPTCHA y tiempos de respuesta ultrarrápidos, CapSolver se integra sin problemas en flujos de trabajo automatizados.
Tipos de CAPTCHA compatibles
- reCAPTCHA v2 (Imagen e Invisible)
- reCAPTCHA v3
- Cloudflare Turnstile
- Desafío Cloudflare (5s)
- AWS WAF
- Y muchos más...
¿Por qué integrar CapSolver con Agno?
Al construir agentes de Agno que interactúan con sitios web, ya sea para recolección de datos, pruebas automatizadas o agregación de contenido, los desafíos de CAPTCHA se convierten en un obstáculo significativo. Para un análisis más profundo sobre cómo resolver CAPTCHAs en entornos de navegador automatizados, consulte nuestra guía sobre cómo resolver CAPTCHA en Puppeteer. Aquí está la importancia de la integración:
- Flujos de trabajo de agentes sin interrupciones: Los agentes pueden completar sus tareas sin intervención manual. Para más soluciones sobre CAPTCHAs en scraping web, consulte nuestro artículo: Mejor forma de resolver CAPTCHA durante el scraping web.
- Privacidad preservada: Tanto Agno como CapSolver le permiten mantener el control sobre sus datos
- Automatización escalable: Manejar múltiples desafíos de CAPTCHA en operaciones concurrentes de agentes
- Costo efectivo: Pague solo por los CAPTCHA resueltos con éxito
- Altas tasas de éxito: Precisión líder en la industria para todos los tipos de CAPTCHA compatibles.
Instalación
Primero, instale los paquetes requeridos:
bash
pip install agno
pip install requests
Agno es independiente del modelo con soporte integrado para 23+ proveedores de LLM:
python
# OpenAI
from agno.models.openai import OpenAIChat
# Anthropic Claude
from agno.models.anthropic import Claude
# Google Gemini
from agno.models.google import Gemini
# Y muchos más...
Creando una herramienta personalizada de CapSolver para Agno
Agno le permite crear herramientas personalizadas que los agentes pueden usar para completar sus tareas. Aquí le mostramos cómo crear una herramienta de CapSolver para manejar desafíos de CAPTCHA:
Implementación básica de la herramienta CapSolver
python
import requests
import time
from agno.tools import tool
CAPSOLVER_API_KEY = "SU_CLAVE_API_DE_CAPSOLVER"
@tool
def solve_captcha(
website_url: str,
website_key: str,
captcha_type: str = "ReCaptchaV2TaskProxyLess"
) -> str:
"""
Resuelve desafíos de CAPTCHA usando la API de CapSolver.
Args:
website_url: La URL del sitio web con CAPTCHA
website_key: La clave del sitio del CAPTCHA
captcha_type: Tipo de CAPTCHA (ReCaptchaV2TaskProxyLess, ReCaptchaV3TaskProxyLess, AntiTurnstileTaskProxyLess)
Returns:
El token de solución del CAPTCHA
"""
# Crear tarea
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": captcha_type,
"websiteURL": website_url,
"websiteKey": website_key
}
}
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"Error al crear la tarea: {result.get('errorDescription')}"
task_id = result.get("taskId")
# Esperar resultado
for _ in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
solution = result.get("solution", {})
return solution.get("gRecaptchaResponse") or solution.get("token")
elif result.get("status") == "failed":
return f"Tarea fallida: {result.get('errorDescription')}"
return "Tiempo de espera agotado para la solución del CAPTCHA"
Resolviendo diferentes tipos de CAPTCHA
Solucionador de reCAPTCHA v2
python
import requests
import time
from agno.tools import tool
CAPSOLVER_API_KEY = "SU_CLAVE_API_DE_CAPSOLVER"
@tool
def solve_recaptcha_v2(website_url: str, website_key: str) -> str:
"""
Resuelve desafíos de reCAPTCHA v2 usando CapSolver.
Args:
website_url: La URL del sitio web con reCAPTCHA v2
website_key: La clave del sitio (atributo data-sitekey)
Returns:
El token g-recaptcha-response
"""
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
}
# Crear tarea
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"Error: {result.get('errorDescription')}"
task_id = result.get("taskId")
# Esperar resultado
for attempt in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["gRecaptchaResponse"]
if result.get("status") == "failed":
return f"Falló: {result.get('errorDescription')}"
return "Tiempo de espera agotado para la solución"
Solucionador de reCAPTCHA v3
python
import requests
import time
from agno.tools import tool
CAPSOLVER_API_KEY = "SU_CLAVE_API_DE_CAPSOLVER"
@tool
def solve_recaptcha_v3(
website_url: str,
website_key: str,
page_action: str = "submit",
min_score: float = 0.7
) -> str:
"""
Resuelve desafíos de reCAPTCHA v3 con verificación basada en puntuación.
Args:
website_url: La URL del sitio web con reCAPTCHA v3
website_key: La clave del sitio de reCAPTCHA
page_action: El parámetro de acción para reCAPTCHA v3
min_score: Puntuación mínima requerida (0.1 a 0.9)
Returns:
El token g-recaptcha-response
"""
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "ReCaptchaV3TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key,
"pageAction": page_action,
"minScore": min_score
}
}
# Crear tarea
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"Error: {result.get('errorDescription')}"
task_id = result.get("taskId")
# Esperar resultado
for attempt in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["gRecaptchaResponse"]
if result.get("status") == "failed":
return f"Falló: {result.get('errorDescription')}"
return "Tiempo de espera agotado para la solución"
Solucionador de Cloudflare Turnstile
python
import requests
import time
from agno.tools import tool
CAPSOLVER_API_KEY = "SU_CLAVE_API_DE_CAPSOLVER"
@tool
def solve_turnstile(website_url: str, website_key: str) -> str:
"""
Resuelve desafíos de Cloudflare Turnstile.
Args:
website_url: La URL del sitio web con Turnstile
website_key: La clave del sitio del widget Turnstile
Returns:
El token de Turnstile
"""
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
}
# Crear tarea
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"Error: {result.get('errorDescription')}"
task_id = result.get("taskId")
# Esperar resultado
for attempt in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["token"]
if result.get("status") == "failed":
return f"Falló: {result.get('errorDescription')}"
return "Tiempo de espera agotado para la solución"
Solucionador de desafío Cloudflare (5s)
python
import requests
import time
from agno.tools import tool
CAPSOLVER_API_KEY = "SU_CLAVE_API_DE_CAPSOLVER"
@tool
def solve_cloudflare_challenge(website_url: str, proxy: str) -> dict:
"""
Resuelve páginas de desafío de Cloudflare de 5 segundos.
Args:
website_url: La URL de la página protegida
proxy: Proxy en formato: http://user:pass@ip:puerto
Returns:
Diccionario con cookies y user_agent para acceder a la página protegida
"""
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "AntiCloudflareTask",
"websiteURL": website_url,
"proxy": proxy
}
}
# Crear tarea
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return {"error": result.get('errorDescription')}
task_id = result.get("taskId")
# Esperar resultado
for attempt in range(60):
time.sleep(3)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return {
"cookies": result["solution"]["cookies"],
"user_agent": result["solution"]["userAgent"]
}
if result.get("status") == "failed":
return {"error": result.get('errorDescription')}
return {"error": "Tiempo de espera agotado para la solución"}
Ejemplo completo de agente de Agno
Aquí hay un ejemplo completo de un agente de Agno que utiliza CapSolver para manejar desafíos de CAPTCHA:
python
import os
import requests
import time
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools import tool
# Configuración
CAPSOLVER_API_KEY = "SU_CLAVE_API_DE_CAPSOLVER"
os.environ["OPENAI_API_KEY"] = "SU_CLAVE_API_DE_OPENAI"
@tool
def solve_recaptcha_v2(website_url: str, website_key: str) -> str:
"""
Resuelve desafíos de reCAPTCHA v2 usando CapSolver.
Args:
website_url: La URL del sitio web con reCAPTCHA v2
website_key: La clave del sitio (atributo data-sitekey)
Returns:
El token g-recaptcha-response o mensaje de error
"""
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
}
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"Error: {result.get('errorDescription')}"
task_id = result.get("taskId")
for _ in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["gRecaptchaResponse"]
if result.get("status") == "failed":
return f"Falló: {result.get('errorDescription')}"
return "Tiempo de espera"
@tool
def solve_turnstile(website_url: str, website_key: str) -> str:
"""
Resuelve desafíos de Cloudflare Turnstile.
Args:
website_url: La URL del sitio web con Turnstile
website_key: La clave del sitio del widget Turnstile
Returns:
El token de Turnstile o mensaje de error
"""
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
}
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"Error: {result.get('errorDescription')}"
task_id = result.get("taskId")
for _ in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["token"]
if result.get("status") == "failed":
return f"Falló: {result.get('errorDescription')}"
return "Tiempo de espera"
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["token"]
if result.get("status") == "failed":
return f"Fallido: {result.get('errorDescription')}"
return "Tiempo de espera agotado"
@tool
def check_capsolver_balance() -> str:
"""
Comprueba el saldo actual de la cuenta CapSolver.
Devuelve:
Información del saldo actual
"""
response = requests.post(
"https://api.capsolver.com/getBalance",
json={"clientKey": CAPSOLVER_API_KEY}
)
result = response.json()
if result.get("errorId") != 0:
return f"Error: {result.get('errorDescription')}"
return f"Saldo: ${result.get('balance', 0):.4f}"
# Crear el Agente de Scraping Web
web_scraper_agent = Agent(
name="Agente de Scraping Web",
model=OpenAIChat(id="gpt-4o"),
tools=[solve_recaptcha_v2, solve_turnstile, check_capsolver_balance],
description="Especialista en scraping web que resuelve desafíos CAPTCHA automáticamente",
instructions=[
"Eres un especialista en scraping web con capacidades para resolver CAPTCHA.",
"Al encontrar un CAPTCHA, identifica el tipo y usa el solucionador correspondiente.",
"Para reCAPTCHA v2, usa solve_recaptcha_v2 con la URL y la clave del sitio.",
"Para Turnstile, usa solve_turnstile con la URL y la clave del sitio.",
"Siempre verifica el saldo antes de iniciar trabajos de scraping grandes."
],
markdown=True
)
def main():
print("=" * 60)
print("Demo de integración Agno + CapSolver")
print("=" * 60)
# Tarea: Resolver un desafío de reCAPTCHA
task = """
Necesito que resuelvas un desafío de reCAPTCHA v2.
URL del sitio web: https://www.google.com/recaptcha/api2/demo
Clave del sitio: 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-
Por favor, resuelve este CAPTCHA y reporta los primeros 50 caracteres del token.
También verifica mi saldo en CapSolver antes de comenzar.
"""
response = web_scraper_agent.run(task)
print("\nRespuesta del Agente:")
print(response.content)
if __name__ == "__main__":
main()
Uso de equipos de Agno con CapSolver
Agno admite agentes multiagente. Aquí te explico cómo crear un equipo con agentes especializados en resolución de CAPTCHA:
python
from agno.agent import Agent
from agno.team import Team
from agno.models.openai import OpenAIChat
from agno.tools import tool
import requests
import time
CAPSOLVER_API_KEY = "TU_CLAVE_API_DE_CAPSOLVER"
@tool
def solve_any_captcha(
website_url: str,
website_key: str,
captcha_type: str = "ReCaptchaV2TaskProxyLess"
) -> str:
"""Solucionador universal de CAPTCHA que admite varios tipos."""
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": captcha_type,
"websiteURL": website_url,
"websiteKey": website_key
}
}
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"Error: {result.get('errorDescription')}"
task_id = result.get("taskId")
for _ in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
solution = result.get("solution", {})
return solution.get("gRecaptchaResponse") or solution.get("token")
if result.get("status") == "failed":
return f"Fallido: {result.get('errorDescription')}"
return "Tiempo de espera agotado"
# Agente Especialista en CAPTCHA
captcha_agent = Agent(
name="Especialista en CAPTCHA",
model=OpenAIChat(id="gpt-4o"),
tools=[solve_any_captcha],
description="Experto en identificar y resolver diversos tipos de CAPTCHA",
instructions=[
"Identificar el tipo de CAPTCHA a partir del análisis de la página",
"Usar el solucionador correspondiente con los parámetros correctos",
"Informar claramente el éxito o el fracaso"
]
)
# Agente de Extracción de Datos
data_agent = Agent(
name="Extractores de Datos",
model=OpenAIChat(id="gpt-4o"),
description="Extrae y procesa datos de páginas web",
instructions=[
"Extraer datos estructurados del contenido HTML",
"Solicitar la resolución de CAPTCHA cuando sea necesario",
"Validar y limpiar los datos extraídos"
]
)
# Crear el equipo
scraping_team = Team(
name="Equipo de Scraping Web",
agents=[captcha_agent, data_agent],
description="Equipo especializado en scraping web con manejo de CAPTCHA"
)
Cómo enviar tokens de CAPTCHA
Cada tipo de CAPTCHA requiere un método de envío diferente:
reCAPTCHA v2/v3 - Inyección de token
python
from selenium import webdriver
from selenium.webdriver.common.by import By
def submit_recaptcha_token(driver, token: str):
"""Inyectar token de reCAPTCHA y enviar"""
recaptcha_response = driver.find_element(By.ID, "g-recaptcha-response")
driver.execute_script("arguments[0].style.display = 'block';", recaptcha_response)
recaptcha_response.clear()
recaptcha_response.send_keys(token)
form = driver.find_element(By.TAG_NAME, "form")
form.submit()
Turnstile - Inyección de token
python
def submit_turnstile_token(driver, token: str):
"""Inyectar token de Turnstile y enviar"""
turnstile_input = driver.find_element(By.NAME, "cf-turnstile-response")
driver.execute_script("arguments[0].value = arguments[1];", turnstile_input, token)
form = driver.find_element(By.TAG_NAME, "form")
form.submit()
Desafío de Cloudflare - Uso de cookies
python
import requests
def access_cloudflare_protected_page(url: str, cf_solution: dict):
"""Usar solución de desafío de Cloudflare para acceder a la página protegida."""
session = requests.Session()
for cookie in cf_solution["cookies"]:
session.cookies.set(cookie["name"], cookie["value"])
headers = {"User-Agent": cf_solution["user_agent"]}
response = session.get(url, headers=headers)
return response.text
Buenas prácticas
1. Manejo de errores con reintentos
python
from agno.tools import tool
import time
@tool
def solve_with_retry(
website_url: str,
website_key: str,
max_retries: int = 3
) -> str:
"""Resolver CAPTCHA con reintentos automáticos en caso de fallo."""
for attempt in range(max_retries):
try:
result = solve_recaptcha_v2(website_url, website_key)
if not result.startswith("Error") and not result.startswith("Fallido"):
return result
except Exception as e:
if attempt == max_retries - 1:
return f"Todos los reintentos fallaron: {str(e)}"
time.sleep(2 ** attempt) # Retroalimentación exponencial
return "Máximo de reintentos excedido"
2. Gestión de saldo
python
@tool
def check_balance() -> float:
"""Verificar el saldo de la cuenta de CapSolver."""
response = requests.post(
"https://api.capsolver.com/getBalance",
json={"clientKey": CAPSOLVER_API_KEY}
)
return response.json().get("balance", 0)
3. Soporte asíncrono
Agno admite operaciones asíncronas para un mejor rendimiento:
python
import asyncio
import aiohttp
from agno.tools import tool
@tool
async def solve_captcha_async(website_url: str, website_key: str) -> str:
"""Solucionador de CAPTCHA asíncrono para mejor concurrencia."""
async with aiohttp.ClientSession() as session:
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
}
async with session.post(
"https://api.capsolver.com/createTask",
json=payload
) as response:
result = await response.json()
if result.get("errorId") != 0:
return f"Error: {result.get('errorDescription')}"
task_id = result.get("taskId")
for _ in range(60):
await asyncio.sleep(2)
async with session.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
) as response:
result = await response.json()
if result.get("status") == "ready":
solution = result.get("solution", {})
return solution.get("gRecaptchaResponse") or solution.get("token")
if result.get("status") == "failed":
return f"Fallido: {result.get('errorDescription')}"
return "Tiempo de espera agotado"
Conclusión
La integración de CapSolver con Agno desbloquea el potencial completo de agentes de IA autónomos para tareas basadas en web. Al combinar la orquestación de múltiples agentes rápida y privada de Agno con las capacidades líderes en resolución de CAPTCHA de CapSolver, los desarrolladores pueden construir soluciones de automatización robustas que manejen incluso los mecanismos de protección web más desafiantes.
Ya sea que estés construyendo pipelines de extracción de datos, marcos de prueba automatizados o agentes web inteligentes, la combinación Agno + CapSolver proporciona la velocidad, fiabilidad y escalabilidad necesarias para entornos de producción.
¿Listo para comenzar? Regístrate en CapSolver y usa el código de bonificación AGNO para obtener un 6% adicional en tu primer recarga!
Preguntas frecuentes
¿Qué es Agno?
Agno es un marco de múltiples agentes, runtime y plano de control para construir productos de IA. Es 529 veces más rápido que LangGraph con un 24 veces menor uso de memoria, y funciona completamente en su infraestructura para máxima privacidad.
¿Cómo se integra CapSolver con Agno?
CapSolver se integra con Agno a través de herramientas personalizadas decoradas con @tool. Crea funciones que envuelvan la API de CapSolver, permitiendo que tus agentes de IA resuelvan automáticamente desafíos CAPTCHA cuando los encuentren durante operaciones web.
¿Qué tipos de CAPTCHA puede resolver CapSolver?
CapSolver admite una amplia gama de tipos de CAPTCHA, incluyendo reCAPTCHA v2, reCAPTCHA v3, Cloudflare Turnstile, Cloudflare Challenge, AWS WAF, GeeTest y muchos más.
¿Cuánto cuesta CapSolver?
CapSolver ofrece precios competitivos basados en el tipo y volumen de CAPTCHA resueltos. Visita capsolver.com para ver los detalles de precios actuales. Usa el código AGNO para obtener un 5% de bonificación en tu primer recarga.
¿Puedo usar Agno con diferentes proveedores de LLM?
Sí ¡Agno es independiente del modelo y admite más de 50 proveedores de modelos, incluyendo OpenAI, Anthropic Claude, Google Gemini, Groq y muchos otros.
¿Es gratuito Agno?
Sí, Agno es de código abierto y se libera bajo la licencia MIT. El marco es gratuito de usar, aunque puede haber costos por llamadas a la API de LLM y servicios de resolución de CAPTCHA como CapSolver.
¿Cómo encuentro la clave del sitio CAPTCHA?
La clave del sitio generalmente se encuentra en la fuente HTML de la página. Busca:
- reCAPTCHA: atributo
data-sitekeyo llamada agrecaptcha.render() - Turnstile: atributo
data-sitekeyen el widget de Turnstile
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

Resolver errores 403 Prohibido al rastrear sitios web con Python
Aprende cómo superar errores 403 Prohibido al crawlear sitios web con Python. Este guía cubre la rotación de IP, el spoofing de user-agent, la limitación de solicitudes, el manejo de autenticación y el uso de navegadores headless para evadir restricciones de acceso y continuar con el scraping de web con éxito.

Lucas Mitchell
13-Jan-2026

Cómo resolver Captcha en Agno con integración de CapSolver
Aprende a integrar CapSolver con Agno para resolver desafíos de reCAPTCHA v2/v3, Cloudflare Turnstile y WAF en agentes de IA autónomos. Incluye ejemplos reales de Python para scraping web y automatización.

Adélia Cruz
13-Jan-2026

Integración de Katana con CapSolver: Resolución automatizada de CAPTCHA para rastreo de web
Aprende a integrar Katana con Capsolver para resolver automáticamente reCAPTCHA v2 y Cloudflare Turnstile en el crawling sin interfaz.

Adélia Cruz
12-Jan-2026

Mejores Bibliotecas de Scraping Web 2026
Explora las mejores librerías de scraping web en Python para 2026. Compara características, facilidad de uso y rendimiento para tus necesidades de extracción de datos. Incluye perspectivas de expertos y preguntas frecuentes.

Aloísio Vítor
12-Jan-2026

Integrar Crawlab con CapSolver: Resolución Automatizada de CAPTCHA para el Rastreo Distribuido
Aprende cómo integrar CapSolver con Crawlab para resolver reCAPTCHA y Cloudflare Turnstile a gran escala.

Adélia Cruz
09-Jan-2026

Cómo sortear el desafío de Cloudflare durante el web scraping en 2026
Aprenda a omitir el desafío de Cloudflare y Turnstile en 2026 para un raspado web sin problemas. Descubra la integración de Capsolver, consejos sobre huellas dactilares TLS y soluciones para errores comunes para evitar el infierno del CAPTCHA. Ahorre tiempo y escale su extracción de datos.

Emma Foster
07-Jan-2026


