CrawlForge MCP
Herramienta avanzada5 credits

scrape_with_actions

Ejecute cadenas de acciones de navegador, incluidas clic, desplazamiento, escritura y autocompletado de formularios, con captura de capturas de pantalla. Ideal para flujos de inicio de sesión, desplazamiento infinito, diálogos modales y sitios complejos con uso intensivo de JavaScript.

Casos de uso

Flujos de inicio de sesión

Automatice formularios de inicio de sesión y acceda a contenido autenticado tras los muros de inicio de sesión

Desplazamiento infinito

Haga scraping de contenido de páginas con desplazamiento infinito, como feeds de redes sociales y listados de productos

Diálogos modales

Interactúe con ventanas emergentes, modales y superposiciones dinámicas

Sitios con uso intensivo de JavaScript

Maneje SPAs y sitios con carga de contenido dinámico mediante AJAX

Formularios de múltiples pasos

Navegue por asistentes de múltiples pasos y envíos de formularios complejos

Pruebas visuales

Capture capturas de pantalla en cada paso para depuración y pruebas de regresión visual

Endpoint

POST/api/v1/tools/scrape_with_actions
Auth Required
1 req/s en el plan Free
5 credits

Parameters

NameTypeRequiredDefaultDescription
url
stringRequired-
La URL a cargar antes de ejecutar la cadena de acciones
Example: https://app.example.com/dashboard
actions
arrayRequired-
Lista ordenada de 1-20 acciones de navegador a ejecutar antes del scraping. Cada elemento es un objeto con un `type` de `wait`, `click`, `type`, `press`, `scroll`, `screenshot`, `executeJavaScript`, `select`, `hover` o `navigate`, además de campos específicos según el tipo: `selector` (destino CSS), `text` (para `type`), `key` (para `press`), `script` (para `executeJavaScript`), `duration`/`condition` (para `wait`), `button`/`clickCount`/`delay` (para `click`), `direction`/`distance`/`toElement` (para `scroll`) `fullPage`/`quality`/`format` (para `screenshot`), `value` o `values` (para `select`) y `url`/`waitUntil` (para `navigate`). `select` admite un único `value` o un arreglo `values`, y una cadena simple coincide con una opción por su valor o por su etiqueta visible; `hover` necesita `selector` y, opcionalmente, `force` y `position`. Opcionales en cualquier acción: `timeout` (por acción, predeterminado 10000ms; distinto de `browserOptions.timeout`, que presupuesta toda la cadena), `description`, `continueOnError` (predeterminado false), `retries` (0-5, predeterminado 1) y `captureAfter` (predeterminado false).
Example: [{"type": "click", "selector": "#login"}, {"type": "type", "selector": "#email", "text": "user@example.com"}, {"type": "wait", "duration": 1000}, {"type": "screenshot"}]
formats
arrayOptional["json"]
Formatos de salida a devolver: `markdown`, `html`, `json`, `text` o `screenshots`
Example: ["markdown", "screenshots"]
captureScreenshots
booleanOptionaltrue
Toma capturas de pantalla durante la ejecución de las acciones
Example: true
formAutoFill
objectOptional-
Rellena y envía un formulario en un solo paso. Estructura: `{ fields: [{ selector, value, type: text|select|checkbox|radio|file, waitAfter }], submitSelector, waitAfterSubmit }` — `waitAfterSubmit` es 2000ms de forma predeterminada.
Example: {"fields": [{"selector": "#email", "value": "user@example.com", "type": "text"}], "submitSelector": "#login"}
browserOptions
objectOptional-
Configuración del navegador: `headless` (predeterminado true), `userAgent`, `viewportWidth` (predeterminado 1280, rango 800-1920), `viewportHeight` (predeterminado 720, rango 600-1080), `timeout` (predeterminado 30000ms, rango 10000-120000) y `stealth` (predeterminado false). Mantenga `timeout` dentro de la ventana REST de ~25s. Ponga `stealth` en true para ejecutar la cadena de acciones en el motor sigiloso de Chromium con su perfil `medium` en lugar del grupo de navegadores estándar: el booleano es el único control, así que el nivel, la aleatorización de huellas y la elección de motor no se pueden ajustar desde aquí. Tarda más en arrancar y renderiza JavaScript, no resuelve desafíos.
Example: {"viewportWidth": 1440, "viewportHeight": 900, "timeout": 20000}
extractionOptions
objectOptional-
Opciones de extracción de contenido: `selectors` (un mapa CSS clave→valor de los datos a extraer), `includeMetadata` (predeterminado true), `includeLinks` (predeterminado true) e `includeImages` (predeterminado true).
Example: {"selectors": {"title": "h1", "price": ".price"}}
continueOnActionError
booleanOptionalfalse
Continúa ejecutando las acciones restantes cuando una falla, en lugar de abortar la cadena
Example: false
maxRetries
numberOptional1
Número máximo de reintentos para la ejecución completa en caso de fallo (0-3)
Example: 1
respect_robots
booleanOptionaltrue
Respeta el robots.txt del sitio de destino. Si lo omite, se aplica el valor predeterminado conforme (`true`): una URL que robots.txt no permita a `CrawlForge` se rechaza antes de abrir el navegador y este endpoint no cobra nada por ello, y cada acción `navigate` se comprueba igual. Póngalo en `false` solo para destinos con los que tenga su propio acuerdo: la anulación queda registrada en su API key.
Example: true

Tipos de acción disponibles

wait
Esperar los milisegundos especificados
action.jsonJson
{"type": "wait", "duration": 2000}
click
Hacer clic en un elemento mediante un selector CSS
action.jsonJson
{"type": "click", "selector": "#button"}
type
Escribir texto en un campo de entrada
action.jsonJson
{"type": "type", "selector": "#search", "text": "query"}
press
Presionar una tecla del teclado
action.jsonJson
{"type": "press", "key": "Enter"}
scroll
Desplazarse a un elemento o posición
action.jsonJson
{"type": "scroll", "toElement": "#content"}
screenshot
Capturar una captura de pantalla
action.jsonJson
{"type": "screenshot"}
executeJavaScript
Ejecutar JavaScript personalizado
action.jsonJson
{"type": "executeJavaScript", "script": "window.scrollTo(0, 0)"}
select
Elige opciones en un <select>: selector indica el desplegable y luego value (una opción) o values (varias). Una cadena simple coincide con una opción por su valor o por su etiqueta visible.
hover
Coloca el puntero sobre el elemento indicado por selector, para menús y descripciones emergentes que solo aparecen al pasar el ratón. force y position se comportan igual que en click.
navigate
Carga otra url en la misma sesión del navegador, de modo que las cookies, el localStorage y el estado de sesión de las acciones anteriores se conservan. El waitUntil opcional es load, domcontentloaded (el predeterminado), networkidle o commit. La nueva URL pasa las mismas comprobaciones de robots.txt y SSRF que la inicial, así que no sirve para eludir el control.

Ejemplos de solicitud

terminalBash
curl -X POST https://crawlforge.dev/api/v1/tools/scrape_with_actions \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://app.example.com/dashboard",
    "actions": [
      {"type": "click", "selector": "#login"},
      {"type": "type", "selector": "#email", "text": "user@example.com"},
      {"type": "type", "selector": "#password", "text": "secret123"},
      {"type": "wait", "duration": 1000},
      {"type": "screenshot"}
    ],
    "formats": ["markdown", "screenshots"]
  }'

Ejemplo de respuesta

200 OK9000ms
{
"success": true,
"data": {
"url": "https://app.example.com/dashboard",
"actionsExecuted": 4,
"results": {
"markdown": "# Dashboard\n\nWelcome back — you are now signed in...",
"screenshots": [
"data:image/png;base64,iVBORw0KGgoAAAANS...(truncated)"
]
},
"actionLog": [
{
"type": "click",
"selector": "#login",
"success": true
},
{
"type": "type",
"selector": "#email",
"success": true
},
{
"type": "wait",
"duration": 1000,
"success": true
},
{
"type": "screenshot",
"success": true
}
]
},
"credits_used": 5,
"credits_remaining": 995,
"processing_time": 9000
}
Field Descriptions
data.urlLa URL que se cargó antes de ejecutar la cadena de acciones
data.actionsExecutedNúmero de acciones que se ejecutaron correctamente
data.results.markdownContenido de la página en cada formato solicitado después de completar todas las acciones
data.results.screenshotsCapturas de pantalla codificadas en base64 capturadas durante la ejecución (data:image/png;base64,…)
data.actionLogRegistro por acción con el tipo, el selector y el estado de éxito
credits_usedCredits descontados por esta solicitud (5 por scrape)
processing_timeTiempo total en ms, incluidas todas las acciones y esperas

Manejo de errores

Runtime de navegador no configurado (503 TOOL_NOT_AVAILABLE)

Esta herramienta necesita un runtime de automatización de navegador. Cuando el backend de ejecución alojado no está configurado, la llamada devuelve 503 de inmediato y no se cobran credits.

El backend de ejecución agotó el tiempo (504 MCP_UPSTREAM_TIMEOUT)

La navegación más la cadena de acciones superó el presupuesto de tiempo del backend de ejecución. Acorte las esperas, reduzca el número de acciones o reintente. Los fallos no se cobran.

Bloqueado por robots.txt (502 TOOL_ERROR)

El robots.txt del destino no permite esta URL a CrawlForge, así que no se lanzó ningún navegador y no se cobró nada. Cada acción navigate se comprueba igual, no solo la URL inicial. Establezca respect_robots: false para anularlo si tiene su propio acuerdo con el destino: la anulación queda registrada en su API key.

Acción no válida (400 Bad Request)

Una o más acciones tienen parámetros no válidos. Verifique el tipo de acción y los campos obligatorios.

Credits insuficientes (402 Payment Required)

Su cuenta no tiene suficientes credits (se necesitan 5). Compre más credits o actualice su plan.

Límite de tasa excedido (429 Too Many Requests)

Ha superado el límite de tasa de su plan. Espere un momento o actualice su plan para obtener límites más altos.

Consejo profesional: Use acciones de espera entre interacciones para asegurarse de que JavaScript tenga tiempo de ejecutarse. Para depurar, habilite captureScreenshots y vea lo que el navegador ve en cada paso.

Costo en credits

5 credits
5 credits por solicitud
Cada solicitud exitosa de scrape_with_actions cuesta 5 credits, independientemente del número de acciones.

Plan Free: 1,000 credits de prueba por única vez = 200 cadenas de acciones

Plan Hobby: 5,000 credits/mes = 1,000 cadenas de acciones ($19/mo)

Plan Professional: 50,000 credits/mes = 10,000 cadenas de acciones ($99/mo)

Plan Business: 250,000 credits/mes = 50,000 cadenas de acciones ($399/mo)

Herramientas relacionadas

form_submit
Envío de formularios simplificado sin cadenas de acciones (3 credits)
screenshot
Capture capturas de pantalla sin acciones (2 credits)
¿Listo para probar scrape_with_actions? Regístrese gratis y obtenga 1,000 credits para empezar a desarrollar.

Pie de página

CrawlForge MCP

Web scraping empresarial para agentes de IA. 29 herramientas MCP especializadas diseñadas para desarrolladores modernos que crean sistemas inteligentes.

Producto

  • Funciones
  • Playground
  • Precios
  • Casos de uso
  • Integraciones
  • Alternativas
  • Registro de cambios

Recursos

  • Primeros pasos
  • Referencia de la API
  • Plantillas
  • Guías
  • Blog
  • Glosario
  • Preguntas frecuentes
  • Mapa del sitio

Desarrolladores

  • Protocolo MCP
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

Empresa

  • Acerca de
  • Contacto
  • Privacidad
  • Términos
  • Uso aceptable
  • Cookies

Mantente al día

Recibe las últimas novedades sobre nuevas herramientas y funciones.

Creado con Next.js y el protocolo MCP

© 2025-2026 CrawlForge. Todos los derechos reservados.