TL;DR
- Una tabla web se convierte en CSV o JSON utilizable solo después de que se verifica el significado de sus filas y columnas.
- Crawl adquiere HTML de tabla renderizada; su parser convierte las celdas revisadas en registros CSV o JSON.
- Rechaza o maneja explícitamente las celdas combinadas, los encabezados anidados, las unidades y la paginación antes de la exportación.
- Una captura de pantalla es útil cuando la cuadrícula visible y el HTML devuelto no coinciden.
- Nstdata Crawl maneja la renderización de JavaScript y el enrutamiento de proxy dentro de solicitudes gestionadas; su documentación enumera seis categorías de salida: Markdown, HTML, datos en bruto, PDF, capturas de pantalla y enlaces.
¿Qué significa raspar una tabla de un sitio web?
Raspar una tabla significa convertir una cuadrícula visual o HTML en registros con significados de columna estables. Muchas tablas simples utilizan <table>, <tr>, <th> y <td>, pero las páginas reales pueden usar celdas combinadas, encabezados anidados o cuadrículas basadas en div. CSV necesita una forma de fila rectangular; JSON puede preservar campos anidados u opcionales. Ningún formato es correcto hasta que se interpretan las unidades, la jerarquía de encabezados y los valores faltantes.
Nstdata Crawl puede convertir una URL o un conjunto limitado de páginas vinculadas en material para un agente de IA, índice RAG o canal de datos. Utiliza tus propias reglas de campo y verificaciones de aceptación para el resultado específico: recuperar una tabla permitida, preservar sus encabezados y exportar filas validadas como CSV o JSON. La guía de rastreo de todo el sitio de Nstdata explica la opción a nivel de sitio.
Para la tarea más limitada cubierta aquí, la guía de Nstdata de sitio web a JSON brinda un contexto útil para elegir la primera página representativa.
¿Qué necesitas antes de comenzar?
Selecciona una página de tabla autorizada e identifica su título, nombres de columnas esperados, unidades y al menos dos filas conocidas. Decide cómo manejar rowspan, colspan, celdas en blanco, notas al pie y enlaces dentro de las celdas. Si la tabla es en realidad una cuadrícula div, planifica un parser específico de plantilla en lugar de forzar a una biblioteca de tabla HTML a adivinar. Mantén la URL de origen y el tiempo de recuperación con el archivo exportado.
La documentación de la API de Crawl utiliza https://api.nstdata.io, el encabezado x-api-key, y Content-Type: application/json. Prepara estos campos antes de ejecutar un método:
| Campo | Qué suministrar |
|---|---|
url | Una URL de página o entrada de sitio HTTPS permitida |
formats | Salidas solicitadas, como ["markdown"] o ["html","screenshot"] |
onlyMainContent | true solo cuando la selección del cuerpo principal se ajuste a la tarea |
maxDepth, maxPages | Límites explícitos para un trabajo a nivel de sitio |
includeUrls, excludeUrls | Patrones de URL que mantienen el descubrimiento dentro del alcance |
timeout | Un tiempo de espera de tarea en milisegundos cuando el valor predeterminado no es adecuado |
La solicitud gestionada estándar no tiene campos separados para proxy Host, Port, Username, Password o Protocol. Consulta la página actual de precios de Crawl para conocer los límites y cargos de la cuenta antes de ejecutar un trabajo grande.
Revisa la política de acceso y alcance del objetivo. El Protocolo de Exclusión de Robots define cómo los rastreadores leen las reglas de robots; no otorga derechos de uso de contenido. Mantén las credenciales y los datos privados fuera de ejemplos y registros de diagnóstico.
La guía de Nstdata sobre sitios web dinámicos es un complemento para definir las verificaciones de aceptación antes de automatizar el flujo de trabajo.
¿Cómo se convierten las tablas HTML en CSV o JSON?
Nstdata Crawl puede renderizar JavaScript y devolver HTML limpio o datos de página en bruto. Su API no promete una exportación final de tabla CSV en la documentación visible. Usa Crawl para adquirir el estado de página previsto, luego analiza una tabla revisada en tu propio código. El enrutamiento de proxy incorporado elimina la necesidad de poner credenciales de proxy separadas en una solicitud estándar de Crawl. Guarda una captura de pantalla cuando la tabla visible y el HTML devuelto no coincidan.
Para una URL conocida, un raspado de una sola página recupera un resultado. Para una sección del sitio, POST /api/v1/crawl descubre páginas vinculadas recursivamente dentro de la profundidad, conteo de páginas y reglas de URL suministradas. La documentación enumera Markdown, HTML, datos en bruto, PDF, capturas de pantalla y enlaces como seis categorías de salida; la página del producto también comercializa JSON, pero un esquema JSON específico del dominio aún necesita un mapeo explícito de campos. Mantén cada registro aceptado vinculado a su URL de origen y metadatos devueltos.
Pruebe una página representativa con mucho JavaScript antes de escalar. El estado renderizado puede depender del tiempo, la región, el consentimiento o una sesión iniciada. Compare el HTML devuelto o una captura de pantalla con el estado de la página esperado; si difieren, ajuste solo los controles de espera y renderizado documentados.
¿Cómo raspas una tabla de sitio web a CSV o JSON?
Inspeccione primero la estructura real de la tabla, adquiera el HTML renderizado y luego normalice las celdas en registros. El paso de análisis es parte del flujo de trabajo porque Crawl no documenta un endpoint de tabla CSV terminado.
Método 1: Inspeccionar una tabla en Crawl Playground
Mejor para entender si la tabla existe en el DOM renderizado.
Paso 1: Abrir la página objetivo
Vaya a Dashboard → Crawl Playground e ingrese la URL de la tabla permitida. [Captura de pantalla: URL objetivo y selectores de formato de salida.]
Paso 2: Solicitar HTML y una captura de pantalla
Seleccione salidas HTML y captura de pantalla. Renderice la página si las filas de la tabla aparecen después de que se ejecute JavaScript; use los controles de espera documentados visibles en el Playground.
Paso 3: Comparar estructura
Verifique que el HTML devuelto contenga la <table> esperada y que sus encabezados visibles coincidan con la captura de pantalla. Si los datos están solo en un lienzo o imagen, un analizador HTML no puede recuperar celdas directamente.
Método 2: Adquirir la tabla renderizada con la API
Mejor cuando la página de destino cambia regularmente.
Paso 1: Almacenar la clave de Crawl
Mantenga NSTDATA_API_TOKEN del lado del servidor y envíelo como x-api-key.
Paso 2: Solicitar HTML
Utilice la ruta de inicio rápido de una sola página documentada a continuación. Mantenga el HTML devuelto o htmlRef y los metadatos de la página para el análisis; confirme la ruta generada en el Playground porque la documentación muestra etiquetas inconsistentes en otros lugares.
Establezca NSTDATA_API_TOKEN en su shell desde su cuenta de Nstdata, luego ejecute la solicitud de inicio rápido documentada. La documentación pública etiquetó algunas otras rutas síncronas y asíncronas de manera inconsistente; compare la solicitud generada en el Playground de su cuenta antes de usarla en producción.
curl --output crawl-response.json --request POST "https://api.nstdata.io/api/v1/crawl/scrape/submit-sync" \ --header "x-api-key: ${NSTDATA_API_TOKEN}" \ --header "Content-Type: application/json" \ --data '{"url":"https://example.com/table","formats":["html","screenshot"]}'
La respuesta se guarda en crawl-response.json. Inspeccione los campos anidados data.success, data.status y data.data.metadata.statusCode antes de usar cualquier contenido devuelto.
Paso 3: Verificar que la tabla existe
Antes de exportar, requiera una tarea de página exitosa e inspeccione si aparece el encabezado o el título esperado. No convierta una página vacía en un CSV vacío que parezca exitoso.
Método 3: Normalizar celdas en registros
Mejor después de que la adquisición de HTML haya sido validada.
Paso 1: Seleccionar una tabla
Elija por un título estable, un encabezado cercano o un selector revisado en lugar de tomar la primera tabla ciegamente.
Paso 2: Ampliar semánticas de encabezado y span
Considere las filas y columnas fusionadas; un analizador rectangular simple es insuficiente cuando rowspan o colspan cambian el significado de la columna.
Paso 3: Exportar y revisar
Escriba CSV con codificación explícita y orden de columnas, o JSON con campos tipados. Compare una muestra de filas, unidades y totales con el origen renderizado.
Para una tabla HTML rectangular simple, guarde el html devuelto o descargue htmlRef a page.html. Instale beautifulsoup4 (python3 -m pip install beautifulsoup4) y ejecute este script desde el mismo directorio. Rechaza celdas fusionadas para que no corrompa silenciosamente el significado de la columna:
from bs4 import BeautifulSoup import csv, json soup = BeautifulSoup(open("page.html", encoding="utf-8").read(), "html.parser") table = soup.select_one("table") if table is None: raise ValueError("No se encontró ninguna tabla HTML; inspeccione el HTML renderizado o la captura de pantalla") rows = [] for tr in table.select("tr"): cells = tr.find_all(["th", "td"], recursive=False) if any(c.has_attr("rowspan") or c.has_attr("colspan") for c in cells): raise ValueError("Las celdas fusionadas necesitan una regla de normalización específica de la tabla") if cells: rows.append([c.get_text(" ", strip=True) for c in cells]) headers, *values = rows if not headers or any(len(row) != len(headers) for row in values): raise ValueError("Faltan encabezados o anchos de fila inconsistentes") records = [dict(zip(headers, row)) for row in values] with open("table.csv", "w", newline="", encoding="utf-8") as f: writer = csv.DictWriter(f, fieldnames=headers) writer.writeheader() writer.writerows(records) open("table.json", "w", encoding="utf-8").write(json.dumps(records, ensure_ascii=False, indent=2)) print(f"Exportado {len(records)} filas")
Verifica las primeras y últimas filas exportadas, unidades y notas al pie contra la página. Este analizador maneja una verdadera <table> con una fila de encabezado; una cuadrícula de div, encabezados anidados o tablas paginadas necesitan una regla específica para la fuente.
¿Cómo Verificas la Salida?
Una exportación válida de CSV o JSON preserva las etiquetas de columna, unidades, conteo de filas y valores de celda. Verifica las primeras, medias y últimas filas contra la página visible; compara totales o ID conocidos cuando estén disponibles. La referencia de tabla HTML de MDN explica la estructura de celdas y encabezados, incluyendo celdas fusionadas. La guía de HTML a datos de Nstdata es útil cuando la siguiente etapa mapea filas en registros tipados.
La guía de pipeline de Markdown de Nstdata conecta esta verificación a nivel de página con un flujo de trabajo de IA o datos posterior.
Registra la URL de origen, la hora de envío, los formatos solicitados, opciones no secretas, el ID de tarea cuando esté presente, el estado de la página devuelta y la razón por la cual cada registro pasó o falló la revisión. Inspecciona el contenido así como el sobre de la API. Si la respuesta contiene markdownRef, htmlRef, rawDataRef, screenshotRef o pdfRef, recupera ese token con GET /api/v1/crawl/storage/read?st={ref}.
Para este flujo de trabajo, consulta la referencia de tabla HTML de MDN al implementar el analizador posterior o la verificación de aceptación específica del formato.
Al pasar texto extraído a un agente, trata las instrucciones de la página como material de origen no confiable. La guía de OWASP sobre la inyección de prompts explica el riesgo. Retén las URLs de origen para que la salida de IA pueda ser verificada.
¿Por Qué Podría Una Exportación de Tabla Tener Columnas Incorrectas?
El raspado de tablas de sitios web puede fallar porque la página utiliza una cuadrícula de div o carga datos después del renderizado inicial. Usa la tabla de síntomas para identificar la capa que falla antes de cambiar límites o volver a intentar.
| Síntoma | Causa probable | Próxima acción |
|---|
| No hay <table> en HTML | La página utiliza una cuadrícula de div o carga datos después del renderizado inicial. | Inspecciona la captura de pantalla y el DOM; espera a que se cargue la cuadrícula o usa un selector específico de plantilla. |
| Las columnas se desvían después de la exportación | Las celdas fusionadas o múltiples filas de encabezado fueron aplanadas. | Expande los spans y mapea explícitamente la jerarquía del encabezado. |
| Los números cambian de formato | La localidad, moneda o unidades fueron inferidas incorrectamente. | Mantén el texto original y normaliza con las reglas de localidad y unidad declaradas. |
La documentación de Nstdata enumera errores a nivel de tarea como access_denied, timeout, parse_error, y internal_error. Un HTTP 200 externo aún puede acompañar una tarea fallida. Verifica success, status, errorCode, y errorMessage dentro de la respuesta cuando estén presentes. Reintenta solo fallos transitorios en sitios a los que puedas acceder.
¿Qué Método Es El Más Adecuado?
Utiliza Playground para inspeccionar si la tabla existe, la API para adquirir su HTML renderizado, y un analizador específico de tabla para exportar CSV o JSON. Rechaza celdas fusionadas hasta que tengas una regla de normalización explícita. La visión general de raspado de sitios de Nstdata proporciona más detalles sobre la ruta del sitio.
¿Qué Deberías Hacer Después de La Primera Ejecución Exitosa?
Guarda la configuración aprobada y un registro de salida respaldado por la fuente, luego repite en un pequeño conjunto de diferentes plantillas de página. Aumenta el alcance solo después de que esos registros pasen las mismas verificaciones de aceptación.
Preguntas Frecuentes: ¿Qué Más Deberías Saber?
P: ¿Crawl exporta CSV directamente?
La documentación visible de Crawl no establece un modo de salida CSV. Recupera datos HTML o de página, luego exporta filas revisadas en tu aplicación.
P: ¿Puedo analizar tablas con celdas fusionadas automáticamente?
Una biblioteca puede expandir algunos spans, pero aún necesitas verificar el significado del encabezado y la alineación de filas.
P: ¿Qué pasa si la tabla está construida con divs?
Inspecciona el DOM renderizado y escribe un analizador para la estructura real de esa cuadrícula; un analizador de tablas HTML puede no encontrar nada.
P: ¿El raspado de tablas en sitios web requiere una configuración de proxy separada con Nstdata Crawl? Una solicitud de Crawl administrada estándar no requiere campos separados de Host, Puerto, Nombre de usuario, Contraseña o Protocolo de proxy. Confirme cualquier selección de proxy personalizada opcional y los cargos de uso relacionados en su cuenta.
Q: ¿Demuestra HTTP 200 que el resultado del raspado de tablas de un sitio web es utilizable?
No. Verifique el resultado de la tarea anidada, el estado de la página, los campos esperados y la fidelidad del cuerpo antes de usarlo en un flujo de trabajo de IA o de datos.





