CrawlForge
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
2 req/s en el plan Free
5 credits

Parameters

NameTypeRequiredDefaultDescription
url
stringRequired-
La URL inicial para la sesión de scraping
Example: https://example.com/login
actions
arrayRequired-
Arreglo de acciones de navegador a ejecutar de forma secuencial
Example: [{"type": "wait", "value": 2000}, {"type": "click", "selector": "#submit"}]
formAutoFill
objectOptional-
Autocompletar campos de formulario con los valores especificados
Example: {"#username": "user@example.com", "#password": "secret"}
captureScreenshots
booleanOptionalfalse
Capturar capturas de pantalla después de cada acción
Example: true
waitForNavigation
booleanOptionaltrue
Esperar a que la navegación se complete después de las acciones de clic
Example: true

Tipos de acción disponibles

wait
Esperar los milisegundos especificados
action.jsonJson
{"type": "wait", "value": 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", "value": "query"}
press
Presionar una tecla del teclado
action.jsonJson
{"type": "press", "value": "Enter"}
scroll
Desplazarse a un elemento o posición
action.jsonJson
{"type": "scroll", "selector": "#content"}
screenshot
Capturar una captura de pantalla
action.jsonJson
{"type": "screenshot"}
executeJavaScript
Ejecutar JavaScript personalizado
action.jsonJson
{"type": "executeJavaScript", "code": "window.scrollTo(0, 0)"}

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://example.com/login",
    "actions": [
      {"type": "type", "selector": "#username", "value": "user@example.com"},
      {"type": "type", "selector": "#password", "value": "secret123"},
      {"type": "click", "selector": "#login-button"},
      {"type": "wait", "value": 3000},
      {"type": "screenshot"}
    ],
    "captureScreenshots": true
  }'

Ejemplo de respuesta

200 OK8450ms
{
"success": true,
"data": {
"content": "...final page content after all actions...",
"screenshots": [
"data:image/png;base64,iVBORw0KGgoAAAANS...",
"data:image/png;base64,iVBORw0KGgoAAAANS..."
],
"intermediateStates": [
{
"action": "type",
"selector": "#search-input",
"success": true,
"timestamp": 1705334523000
},
{
"action": "click",
"selector": "#submit",
"success": true,
"timestamp": 1705334524500
}
],
"finalState": {
"url": "https://example.com/search?q=AI+web+scraping",
"title": "Search Results - AI web scraping",
"cookies": 12,
"localStorage": 5
}
},
"credits_used": 5,
"credits_remaining": 995,
"processing_time": 8450
}
Field Descriptions
data.contentContenido HTML final después de ejecutar todas las acciones
data.screenshotsArreglo de capturas de pantalla codificadas en base64 (si captureScreenshots: true)
data.intermediateStatesRegistro de cada acción con su estado de éxito y marca de tiempo
data.finalStateEstado final del navegador, incluidos URL, cookies y localStorage
credits_usedCredits descontados por esta solicitud (5 por scrape)
processing_timeTiempo total, incluidas todas las acciones y esperas

Manejo de errores

Acción fallida (422 Unprocessable Entity)

Una o más acciones no se pudieron ejecutar. Verifique que los selectores sean correctos y que los elementos estén visibles.

Tiempo de espera agotado (504 Gateway Timeout)

La cadena de acciones tardó demasiado en completarse (máx. 30s). Reduzca los tiempos de espera o el número de acciones.

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.