Obteniendo datos estructurados de productos de páginas de comercio electrónico
TL;DR
La extracción de datos de productos solo tiene éxito cuando el precio, la moneda, la variante y la disponibilidad se refieren a la misma oferta.
Un registro de producto es válido solo cuando el precio, la moneda, la disponibilidad y la variante se refieren a la misma oferta.
JSON-LD de producto es una fuente candidata útil, pero compáralo con la oferta seleccionada renderizada.
Utiliza el descubrimiento delimitado para una sección de catálogo revisada y mantén las páginas de categoría fuera de los registros de productos.
Nstdata Crawl maneja el renderizado de JavaScript y el enrutamiento de proxies dentro de solicitudes gestionadas; su documentación enumera seis categorías de salida: Markdown, HTML, datos sin procesar, PDF, capturas de pantalla y enlaces.
¿Qué Cuenta Como Datos Estructurados de Producto?
Los datos estructurados de producto son un registro tipado para un producto o variante específica: nombre, identificador, opción seleccionada, precio, moneda, disponibilidad y URL de origen. Las páginas de comercio electrónico a menudo muestran varias ofertas, precios regionales, suscripciones, paquetes o variantes seleccionadas en una sola pantalla. Un envoltorio genérico de página a JSON no resuelve qué valor pertenece a qué oferta. Define la identidad del registro y la evidencia para cada campo antes de escalar.
Nstdata Crawl puede convertir una URL o un conjunto delimitado 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: recupera las páginas de productos permitidas y mapea los detalles visibles o incrustados en registros validados. La guía de rastreo de sitio completo de Nstdata explica la opción a nivel de sitio.
Para la tarea más específica cubierta aquí, la guía de Nstdata de sitio a JSON proporciona un contexto útil para elegir la primera página representativa.
Selecciona una página de producto pública o autorizada y registra la variante seleccionada, el SKU esperado, el texto del precio, la moneda, la disponibilidad y el contexto de última actualización. Determina si el sitio ofrece un feed oficial o API; úsalo donde sea apropiado. Establece reglas para el precio de venta frente al precio de lista, las etiquetas de fuera de stock, múltiples vendedores y la moneda regional. Mantén los datos sensibles de clientes o cuentas fuera del flujo de trabajo.
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 ajusta 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 predeterminado no es adecuado
La solicitud gestionada estándar no tiene campos separados de Proxy Host, Port, Username, Password o Protocol. Consulta la página de precios actual 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 el 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 del contenido. Mantén credenciales y datos privados fuera de ejemplos y registros de diagnóstico.
¿Cómo Exponen las Páginas de Producto Datos Estructurados?
Nstdata Crawl puede renderizar páginas de productos con mucho JavaScript, adquirir Markdown o HTML, y rastrear una sección de categoría delimitada. Su página de producto publicita salidas en JSON, mientras que el ejemplo de API visible no especifica un esquema de producto arbitrario. Utiliza Crawl como la capa de recuperación y limpieza, luego analiza los datos estructurados de producto publicados o los elementos DOM revisados y valida contra la página visible. El enrutamiento de proxy gestionado está integrado; la solicitud estándar no requiere credenciales de proxy separadas.
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 sin procesar, PDF, capturas de pantalla y enlaces como seis categorías de salida; la página de producto también comercializa JSON, pero un esquema JSON específico de dominio aún necesita mapeo de campos explícito. Mantén cada registro aceptado vinculado a su URL de origen y metadatos devueltos.
Prueba 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. Compara el HTML devuelto o una captura de pantalla con el estado de página esperado; si difieren, ajusta solo el renderizado documentado y los controles de tiempo de espera.
¿Cómo extraes datos de productos de páginas de comercio electrónico?
Compara una oferta renderizada con su marcado incrustado, luego automatiza URL de productos conocidos o una sección de catálogo limitada. Mapea los campos solo después de que la variante seleccionada y la región sean claras.
Método 1: Inspeccionar un producto en el Playground
Mejor para establecer lo que la página realmente expone.
Paso 1: Abre un producto representativo
Usa Dashboard → Crawl Playground con una URL de producto autorizada. [Captura de pantalla: URL, renderizado y formatos de salida.]
Paso 2: Solicitar HTML y evidencia visual
Elige salidas en HTML y captura de pantalla. Si el precio o el stock se cargan después de JavaScript, utiliza una espera de preparación documentada visible en el Playground.
Paso 3: Comparar variantes
Verifica la variante seleccionada en la captura de pantalla contra cualquier Product JSON-LD incrustado y el precio visible. No mezcles el nombre de un producto padre con la oferta de una variante diferente.
Método 2: Recuperar la página a través de la API
Mejor para recolección repetible de URL de productos conocidos.
Paso 1: Almacena la clave de forma segura
Mantén NSTDATA_API_TOKEN en el servidor y envíalo como x-api-key.
Paso 2: Solicitar la página
Usa la forma de raspado de inicio rápido documentada a continuación para HTML y Markdown. Verifica la ruta generada actualmente en el Playground porque la documentación etiqueta otras rutas de raspado de manera inconsistente.
Configura NSTDATA_API_TOKEN en tu shell desde tu cuenta de Nstdata, luego ejecuta la solicitud de inicio rápido documentada. La documentación pública etiqueta algunas otras rutas de sincronización y asincronización de manera inconsistente; compara la solicitud generada en el Playground de tu 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/product/sample","formats":["html","markdown"]}'
La respuesta se guarda en crawl-response.json. Inspecciona los campos anidados data.success, data.status y data.data.metadata.statusCode antes de usar cualquier contenido devuelto.
Paso 3: Mapear campos
Analiza el marcado Product incrustado cuando esté disponible y compara sus valores con el contenido visible. Si el HTML limpio omite scripts JSON-LD, inspecciona una representación de datos en bruto en tu cuenta antes de asumir que no hay marcado estructurado.
Si la página publica Product JSON-LD, guarda el HTML en bruto como page.html e inspecciona sus ofertas declaradas antes de mapear campos. El siguiente código extrae nodos de Producto sin pretender que cada tienda use el mismo esquema de oferta:
from bs4 import BeautifulSoup
import json
soup = BeautifulSoup(open("page.html", encoding="utf-8").read(),"html.parser")nodes =[]for script in soup.select('script[type="application/ld+json"]'):try: data = json.loads(script.string or script.get_text())except json.JSONDecodeError:continue stack = data ifisinstance(data,list)else[data]while stack: item = stack.pop()ifisinstance(item,dict):if item.get("@type")=="Product"or"Product"in(item.get("@type")or[]): nodes.append(item) graph = item.get("@graph",[]) stack.extend(graph ifisinstance(graph,list)else[graph])ifnot nodes:raise ValueError("No Product JSON-LD; inspect the rendered DOM")for product in nodes:print(json.dumps({"name": product.get("name"),"sku": product.get("sku"),"offers": product.get("offers")}, ensure_ascii=False, indent=2))
Instala Beautiful Soup con python3 -m pip install beautifulsoup4. Trata cada oferta impresa como un candidato: compara variante, precio, moneda y disponibilidad con la página renderizada antes de almacenar un registro de producto.
Método 3: Raspado de una sección de catálogo limitada
Mejor para una categoría revisada o un conjunto corto de productos relacionados.
Paso 1: Establecer alcance
Comienza desde una URL de categoría y establece un pequeño maxDepth, maxPages y reglas de inclusión/exclusión para evitar rutas de carrito, búsqueda y cuenta.
Paso 2: Recopilar registros de página
Envía POST /api/v1/crawl, consulta el estado y recupera todas las páginas. Identifica las páginas de detalles de productos explícitamente; las páginas de categoría no son registros de productos.
Para un trabajo del sitio, reemplaza el host y la ruta de ejemplo con tu alcance aprobado, luego envía una solicitud limitada:
curl--output crawl-submit.json --request POST "https://api.nstdata.io/api/v1/crawl"\--header"x-api-key: ${NSTDATA_API_TOKEN}"\--header"Content-Type: application/json"\--data'{"url":"https://example.com/docs/","formats":["html"],"maxDepth":2,"maxPages":10,"includeUrls":["*example.com/docs/*"],"excludeUrls":["*example.com/admin/*"],"ignoreQuery":true}'
Copia data.id de crawl-submit.json como tu ID de raspado.
Paso 3: Validar ofertas
Deduplica por ID de producto y variante estables, normaliza la moneda sin cambiar el significado y rechaza las páginas donde la oferta seleccionada no se puede vincular a los valores extraídos.
Método 4: Use JSON-LD de Producto publicado desde una página estática
Mejor para páginas de productos públicos cuyo HTML original ya contiene marcado de Producto completo.
Paso 1: Guarda el HTML del producto
Guarda una página de producto autorizada como page.html y anota la variante seleccionada, el precio mostrado, la moneda y el estado de stock.
Paso 2: Extrae ofertas candidatas
Ejecuta el analizador JSON-LD de Producto mostrado en el Método 2. Si no encuentra un nodo de Producto, no fabriques campos; utiliza una representación renderizada o un feed de producto oficial si está disponible.
Paso 3: Valida la oferta seleccionada
Elige la oferta que coincida con la variante seleccionada y compara cada valor almacenado con la página de producto visible. El marcado estático puede estar obsoleto u omitir precios específicos de la región; usa la página renderizada de Crawl y una captura de pantalla cuando esa distinción sea importante.
¿Cómo Verificas la Salida?
Un registro válido nombra el producto o variante, mantiene la URL de origen y vincula el precio, la moneda y la disponibilidad a la misma oferta visible. Almacena el texto del precio original junto a los valores normalizados para que un revisor pueda detectar errores de localidad. La documentación de datos estructurados de Producto de Google distingue fragmentos de productos, listados de comerciantes y marcado de variantes. La guía de Nstdata sobre sitio web a JSON explica por qué la validación del esquema por sí sola no puede probar que un valor extraído es verdadero.
Registra la URL de origen, hora de envío, formatos solicitados, opciones no secretas, ID de tarea cuando esté presente, estado de página devuelto 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}.
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 solicitudes explica el riesgo. Retén las URL de origen para que la salida de IA pueda ser verificada.
¿Por Qué Podrían Contener los Registros de Producto la Oferta Incorrecta?
La extracción de datos de producto puede fallar porque la página muestra varias ofertas o variantes predeterminadas. Usa la tabla de síntomas para identificar la capa que falla antes de cambiar límites o intentar de nuevo.
Síntoma
Causa probable
Próxima acción
Precio incorrecto para la variante seleccionada
La página muestra varias ofertas o variantes predeterminadas.
Captura la opción seleccionada y compara el contexto de la oferta visible.
No hay JSON-LD en el HTML limpio
La limpieza puede omitir elementos de script.
Inspecciona los datos de la página raw o el DOM visible antes de cambiar el mapeador.
Las páginas de categoría aparecen como productos
El descubrimiento incluye páginas de listado.
Clasifica las plantillas de página y conservas solo las páginas de detalles revisadas.
La documentación de Nstdata enumera errores a nivel de tarea tales como access_denied, timeout, parse_error, y internal_error. Un HTTP 200 externo aún puede acompañar a una tarea fallida. Revisa success, status, errorCode y errorMessage dentro de la respuesta cuando esté presente. Reintenta solo fallos transitorios en sitios a los que puedas acceder.
¿Qué Método es el Más Adecuado?
Usa Playground para revisar una variante, la API para URL de productos conocidos, o un rastreo de sitio limitado para una sección del catálogo revisada. Usa el análisis local de JSON-LD en una página estática solo cuando sus ofertas coincidan con la variante seleccionada. La visión general de rastreo de sitios de Nstdata ofrece más detalles sobre la ruta del sitio.
¿Qué Debes 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.
P: ¿Crawl produce un esquema de producto terminado?
La documentación pública de la API confirma los resultados de la página pero no define claramente la extracción de campos de producto arbitrarios. Mapea y valida los campos en tu aplicación.
P: ¿Puede el JSON-LD del producto reemplazar las verificaciones visibles?
No. El marcado estructurado puede estar obsoleto o referirse a una variante diferente; compáralo con la oferta renderizada.
P: ¿Debería almacenar los precios de los productos como números de punto flotante?
Prefiere valores seguros en decimal o texto original más moneda; evita redondeos silenciosos y suposiciones de localización.
P: ¿La extracción de datos del producto requiere una configuración de proxy separada con Nstdata Crawl?
Una solicitud estándar de Crawl administrada no requiere campos de Proxy Host, Puerto, Nombre de usuario, Contraseña o Protocolo separados. Confirma cualquier selección de proxy personalizado opcional y los cargos de uso relacionados en tu cuenta.
P: ¿El HTTP 200 prueba que un resultado de extracción de datos de productos es utilizable?
No. Verifica 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.
Este tutorial muestra cómo descubrir URLs autorizadas a partir de sitemaps y convertir un subconjunto revisado en un rastreo de sitio limitado. Cubre métodos prácticos, verificaciones de resultados y los límites del rastreo gestionado.
Kai Watanabe
Oct. 28th 2026
Descubre Nstproxy Crawl - Empieza Tu Prueba Gratuita Hoy
Rastrea sitios web completos con una sola solicitud API
Convierte cualquier sitio web en Markdown, HTML, JSON, enlaces, PDF y más, sin gestionar infraestructura de rastreo.
99,8% de éxito con renderizado JavaScript
Obtén datos limpios, listos para LLM, en múltiples formatos