Skip to main content
POST https://api.acedata.cloud/webextrator/render La API de renderizado de páginas WebExtrator es un servicio de renderizado de páginas basado en Chromium sin cabeza. Dado un URL, devuelve el HTML completamente renderizado (incluido el contenido inyectado por JS), texto plano, título de la página y URL final. Render es la interfaz más básica de WebExtrator. Si necesitas resultados de extracción estructurados (cuerpo del artículo, precios de productos, ingredientes de recetas…), por favor utiliza /webextrator/extract — que ejecuta un conjunto completo de tuberías de extracción tipificadas sobre la misma base de renderizado.

Proceso de Solicitud

Para utilizar la página de servicios de WebExtrator, primero ve a la consola de Ace Data Cloud para obtener tu Token de API, guárdalo para uso futuro. Si aún no has iniciado sesión o registrado, serás redirigido automáticamente a la página de inicio de sesión que te invita a registrarte e iniciar sesión, y después volverás automáticamente a la página actual. Un Token de API es suficiente para acceder a todos los servicios de la plataforma, no es necesario solicitar uno por cada servicio. La primera solicitud te otorgará un crédito gratuito para que lo pruebes; si el crédito es insuficiente, puedes recargar el saldo general en la consola.
📘 Documentación completa: Página de servicios de WebExtrator →

Autenticación

Todas las interfaces de WebExtrator utilizan autenticación estándar con Bearer Token:

Parámetros de Solicitud

El contrato de la plataforma utiliza snake_case de manera uniforme. Los servicios de renderizado internos admiten camelCase, pero todas las llamadas externas utilizan snake_case.

Estructura de Cookies

Respuesta Sincrónica

Respuesta Asincrónica

Cuando async=true (o se proporciona callback_url), devuelve inmediatamente (HTTP 200):
Los resultados se enviarán a callback_url mediante POST (si está configurado), o se pueden consultar activamente a través de /webextrator/tasks.

Estructura de Callback

La plataforma POST un envelope exactamente igual al modo sincrónico a callback_url, Content-Type: application/json. Devolver cualquier 2xx se considera confirmado; 5xx se reintentará con retroceso exponencial durante aproximadamente 5 minutos.

Respuesta de Error

Estructura de error:

Ejemplo

cURL

Python (requests)

Node.js (fetch)

Asincrónico + Callback

Devuelve inmediatamente { "success": true, "task_id": "...", "trace_id": "...", "started_at": 1777717800.123 }; cuando la tarea se complete, la plataforma enviará los resultados completos a tu callback_url.

Forzar eludir caché

Consejos y trampas

  • Es importante elegir correctamente wait_until. networkidle es el más estable pero el más lento; domcontentloaded es rápido pero puede perder contenido inyectado de forma asíncrona; load es adecuado para páginas estáticas tradicionales.
  • La clave de caché ignora async. Las solicitudes sincrónicas y asincrónicas para la misma URL golpean la misma entrada de caché, cambiar entre ellas no invalidará.
  • La clave de caché ignora bypass_cache y cache_ttl_seconds. Estos dos son interruptores de operación, no afectan el contenido de la respuesta.
  • Las cookies y headers se almacenan en caché por separado. Personalizar estos dos hará que la primera combinación idéntica falle.
  • Las SPA pesadas a menudo superan los 30 segundos predeterminados. Se recomienda timeout: 60, wait_until: "domcontentloaded", delay: 4, junto con wait_for_selector para esperar los elementos que realmente importan.
  • block_resources es el camino más rápido para reducir la latencia. Por defecto, ya se bloquean imágenes / fuentes / medios; si tu extracción no depende del diseño CSS, agregar stylesheet puede hacerlo aún más rápido.