Más del 70% de los sitios web modernos dependen de JavaScript para renderizar su contenido. Una request HTTP estándar solo ve la estructura HTML inicial. Los datos reales se cargan después de que JavaScript se ejecuta, por lo que las herramientas de scraping tradicionales devuelven páginas vacías.
Las tareas de navegador de FourA resuelven esto ejecutando una instancia real de headless Chrome para cada request.
Cómo funciona
Cuando envías una tarea con type: "browser", FourA:
- Inicia un navegador headless Chrome
- Navega a la URL de destino
- Espera a que JavaScript se ejecute y el DOM se estabilice
- Opcionalmente, espera a que aparezca un selector CSS específico
- Devuelve el HTML completamente renderizado
Todo el proceso ocurre en la infraestructura de FourA. Obtienes HTML limpio sin necesidad de instalar un navegador, configurar Puppeteer ni gestionar actualizaciones de Chrome.
Cuándo usar tareas de navegador
Usa tareas de navegador para:
- Aplicaciones de página única (React, Vue, Angular)
- Páginas con contenido cargado de forma diferida (scroll infinito, botones "cargar más")
- Sitios que requieren consentimiento de cookies o configuración inicial de JS
- Contenido detrás de flujos de autenticación en el cliente
Mantén las tareas single para:
- Páginas HTML renderizadas en el servidor (sitios de noticias, blogs, wikis)
- REST APIs que devuelven JSON directamente
- Casos donde la velocidad es la prioridad (las tareas de navegador tardan entre 2 y 10 segundos frente a menos de 1 segundo para tareas individuales)
Ejemplo: scraping de una app React
curl -X POST https://eu.api.foura.ai/api/v1/tasks \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/dashboard",
"type": "browser",
"options": {
"waitFor": ".dashboard-content",
"timeout": 15000
}
}'
El selector waitFor le indica a FourA que espere hasta que .dashboard-content aparezca en el DOM antes de capturar la página. Esto garantiza que todos los datos asíncronos se hayan cargado.
Consejos de rendimiento
- Usa siempre
waitForcon un selector específico en lugar de depender de timeouts. Es más rápido y más confiable. - Establece un timeout razonable. 15 segundos cubre la mayoría de las SPAs. Auméntalo solo para backends realmente lentos.
- Usa
singlede forma predeterminada y cambia abrowsersolo cuando falte contenido en la response.
Próximos pasos
Estamos trabajando en capacidades adicionales de navegador, como captura de pantalla, generación de PDF y navegación de múltiples pasos (hacer clic, scroll, completar formularios). Pero incluso sin estas funciones adicionales, las tareas de navegador ya resuelven el principal problema: obtener el contenido real de páginas renderizadas con JavaScript en lugar de una estructura vacía.
Consulta la documentación para ver la comparación completa de tipos de tareas.