Extractor de Productos de Vistaprint

Un catálogo de imprenta que
no tiene un precio único.

Vistaprint vende impresión por cantidad: cincuenta tarjetas de visita, luego cien, luego quinientas, cada tramo a su propia tarifa. Por eso una página de producto publica un nombre, un SKU, una valoración y una descripción, y ningún precio. Este scraper devuelve las diecisiete columnas; seis vuelven vacías, y preferimos decirte cuáles antes de que te registres y no después.

500 filas gratis por única vezdespués 0,002 $ por filaonce columnas con datos, seis vacíasCSV · JSON · Excel
Cómo funciona

Una lista de URLs entra, una hoja de cálculo sale.

  1. PASO 1Inicia sesión en la plataforma.
  2. PASO 2Abre el Vistaprint Products Scraper.
  3. PASO 3Pega las URLs de producto de Vistaprint que quieras, una por línea, no páginas de categoría ni de búsqueda.
  4. PASO 4Elige tu formato de salida (CSV / JSON / XLSX).
  5. PASO 5Lanza el trabajo.
  6. PASO 6Descarga los resultados: una fila por URL, diecisiete columnas.
Qué esperar

Lo que conviene saber antes de lanzarlo.

Las columnas de precio vuelven vacías

En las dos ejecuciones que devolvieron filas reales de Vistaprint, price, parsed_price, currency y availability estaban todas vacías. No es una carencia del scraper. Pide una página de producto y lee sus datos estructurados: el bloque Product lleva nombre, descripción, SKU, MPN y marca, y no hay nodo de oferta ni precio en ninguna parte. Vistaprint cotiza por cantidad y acabado, así que la página no tiene una cifra única que meter en una celda.

Lo que sí devuelve es identidad

Nombre, marca, SKU, valoración, descripción y URLs de imagen vinieron con datos en todas las filas de producto reales. Eso basta para cruzar un artículo de Vistaprint con tu propio catálogo, para seguir qué productos existen y cómo se describen, y para extraer las imágenes; simplemente no basta para montar una comparación de precios.

Dale páginas de producto, no de categoría ni de búsqueda

Tenemos la evidencia en los dos sentidos. Una URL de producto devolvió una fila completa. La página de categoría un nivel por encima devolvió no product data found, y una URL /search?q=… devolvió status: ok con name diciendo «Search Results» y todos los demás campos vacíos: un título de página, no un producto. El propio robots.txt de Vistaprint además prohíbe /search a todos los rastreadores.

Vistaprint rechaza algunas peticiones

De las ocho ejecuciones que tenemos, tres volvieron con blocked (needs residential proxy). Una de ellas era la misma URL de tarjetas de visita que funcionó ocho días después. Así que el bloqueo es real y es intermitente; no vamos a darte una tasa de éxito a partir de ocho ejecuciones, y deberías incluir reintentos en cualquier programación.

No partas el campo images por comas

image e images tenían el mismo valor en las dos filas reales, y ese valor es una URL de transformación de Cloudinary: c_scale,dpr_auto,f_auto,q_auto:best y demás. Las comas pertenecen a la URL. Partir por ellas produce fragmentos que no resuelven a nada. Una de nuestras dos filas llevaba una URL de imagen de 1.697 caracteres, así que dale espacio a la columna.

Cada fila dice qué pasó

La última columna es status, escrita por nuestro exportador y no por el sitio. A lo largo de nuestras ocho ejecuciones tomó cuatro valores distintos -ok, blocked (needs residential proxy), no product data found y http 404-, así que una fila que falló llega igualmente, con el motivo.

Lo que recibes

Diecisiete columnas, once de ellas con datos.

Leídas de la cabecera de una exportación real, en el orden de la hoja. Donde observamos que una columna lleva un valor, aquí se dice cómo era ese valor. Donde la observamos vacía en todas las filas, se dice eso en su lugar.

query
La URL de Vistaprint que enviaste, repetida en cada fila para que una exportación con muchos productos siga siendo separable. En todas nuestras filas coincidía exactamente con url.
sku_code
El código de producto. En las dos filas reales era idéntico a sku, con la forma PRD- seguido de ocho caracteres alfanuméricos. Dos columnas de identificador, un valor: usa cualquiera, pero revisa las dos si vas a cruzar, porque en esta familia de esquemas se rellenan de forma independiente.
product_url
Pensada para llevar la página de producto canónica. Usa url en su lugar.
name
El título del producto tal como lo indica la página: «Standard Business Cards» en una de nuestras filas, «VistaPrint® Printed Baseball Cap» en la otra. Fíjate en el símbolo de marca registrada: está en el origen y sobrevive hasta la celda.
description
La descripción comercial de la página, unos 150–180 caracteres en nuestras filas. Merece la pena leerla en vez de descartarla: en la fila de tarjetas de visita, la única información de precio de todo el registro era una frase dentro de este texto, no un número en una columna de precio.
parsed_price
Pensada para llevar el precio como número puro. Mira la nota bajo la tabla.
price
Pensada para llevar el precio tal como se muestra.
currency
Pensada para llevar la moneda en que se cotiza el precio.
availability
Pensada para llevar el estado de stock. La impresión bajo pedido no tiene un estado de existencias como lo tiene la mercancía almacenada.
rating
La valoración media, y uno de los campos que sí vuelve: «4.7» y «4.3» en nuestras dos filas. Llega como cadena de texto, no como número, así que conviértela antes de ordenar por ella.
reviews
Pensada para llevar el número de reseñas. Vacía en las dos filas reales, aunque los datos estructurados de la propia página de producto sí publican un recuento de reseñas junto a la valoración. Lo registramos como una carencia en vez de explicarlo de largo.
images
Todas las imágenes que lleva la página. En las dos filas reales era idéntica a image. No la partas por comas: las comas son parte de la transformación de Cloudinary.
brand
El fabricante o la marca. «Vistaprint» en nuestras dos filas, que es lo que cabe esperar de una imprenta de marca propia; trata un valor distinto como información y no como un error.
sku
La referencia del artículo. Idéntica a sku_code en las dos filas reales, y la clave de cruce más útil del registro: es el valor que los datos estructurados de la página publican como su SKU.
url
La dirección desde la que se produjo la fila. Igual a query en todas las filas que tenemos, lo que indica que esas peticiones se sirvieron sin redirigir.
image
La imagen principal por separado. Una URL de Cloudinary en cms.cloudinary.vpsvc.com que envuelve una previsualización renderizada desde rendering.documents.cimpress.io: la imagen se genera bajo petición en vez de guardarse como fotografía. Una de las nuestras llegó a 1.697 caracteres, así que una columna de ancho fijo la truncará.
status
Un indicador por fila escrito por nuestro exportador, no por Vistaprint. A lo largo de nuestras ocho ejecuciones tomó cuatro valores: ok, blocked (needs residential proxy), no product data found y http 404. Concilia por esta columna y no por el número de filas.

Diecisiete columnas por fila · CSV, JSON o Excel

Por qué están vacías las cuatro columnas de precio, dicho sin rodeos. Tenemos ocho ejecuciones; dos devolvieron filas reales de producto de Vistaprint, y en las dos price, parsed_price, currency y availability eran cadenas vacías. No es un defecto del scraper. Pedir cualquiera de esas dos páginas de producto directamente devuelve unos 745–843 KB de HTML renderizado en servidor cuyo ld+json contiene un bloque Product con nombre, descripción, SKU, MPN y marca, y ningún nodo de oferta ni precio de ningún tipo. Vistaprint cotiza por cantidad, material y acabado, así que no hay un precio de producto único que la página pueda publicar ni que nosotros podamos leer. La valoración y el SKU de esos mismos datos estructurados coinciden exactamente con nuestra exportación, que es como sabemos que las filas son genuinas y no un accidente de análisis. Si tu trabajo necesita precios de Vistaprint, este servicio no los va a dar, y ninguna configuración lo cambiará.

Flujos de trabajo habituales

Para qué sirven los datos de identidad.

Cruce de catálogos

Alinear tus registros con los suyos

sku llega en una forma PRD- limpia y es el mismo valor que la página de producto publica como su SKU, lo que lo convierte en una clave de cruce fiable. Combínalo con name y brand y podrás conciliar una lista de artículos de Vistaprint con la tuya sin cruzar por texto libre.

Ops de ecommerce · Catálogo
Seguimiento de surtido

Vigilar qué existe, no cuánto cuesta

Lanza un conjunto de URLs de producto de forma programada y guarda name, description y rating con la fecha de ejecución. Los productos se renombran, se reposicionan y se redescriben mucho más a menudo de lo que nadie anuncia, y la serie lo enseña.

Investigación de categoría · Surtido
Imagen y texto

Extraer la descripción y la imagen renderizada

description e image vuelven con datos. La imagen es un render en vivo de Cloudinary y no una fotografía guardada, así que trata la URL como el artefacto y descárgala cuando necesites el archivo.

Contenido · Enriquecimiento
Instantáneas de valoración

Seguir la valoración en el tiempo

rating es uno de los campos que llegan de forma fiable. Es una cadena, así que conviértela primero. Recuerda que reviews vuelve vacía, así que tienes la nota sin el tamaño de muestra detrás: suficiente para una línea de tendencia, no para ordenar productos entre sí.

Investigación de producto · Reseñas
Precios

Paga solo por lo que realmente usas.

Plan gratuito

Las primeras 500 filas son gratis

Por única vez, al registrarte. Sin tarjeta y sin nada que cancelar después.

Por única vez, al registrarte
Tarifa

después 0,002 $ por fila

Se factura por filas realmente devueltas. Una fila que vuelve con un status distinto de uno correcto no es una fila de datos de producto, y no se te cobra como tal.

Facturado por filas devueltas
Sin suscripción

Nada recurrente

Los créditos no caducan en un ciclo mensual. Lanza un barrido de catálogo en marzo y nada más hasta septiembre si el trabajo tiene esa forma.

Sin caducidad mensual
10 % de descuento en tu primera ejecución de pago.Usa el código LIVESCRAPER10 al pagar.
Registrarse
Combina bien con

Otros catálogos, las mismas diecisiete columnas.

La parte legal

¿Es legal hacer scraping de Vistaprint?

Los hechos de producto en una página de acceso público son información competitiva corriente. Las advertencias que merece la pena señalar aquí van sobre qué páginas pides y qué haces con las imágenes.

Un nombre de producto, una marca, un SKU y una valoración son hechos sobre bienes puestos a la venta. Leerlos de una página que se sirve a cualquier visitante es la misma actividad que un comprador hace a mano, a una velocidad útil. Nada en las diecisiete columnas describe a una persona: no hay nombre, ni correo, ni teléfono, ni cuenta, así que las cuestiones de protección de datos que marcan nuestros servicios sobre personas no se plantean aquí.

Dos advertencias son específicas de este sitio. Primero, qué páginas pides: el robots.txt de Vistaprint no lleva un Disallow: / general para los rastreadores comunes, y las rutas de producto que probamos no están prohibidas, pero /search sí lo está, para todos los agentes. Eso importa porque en las entradas de ejemplo publicadas para este servicio aparece una URL de búsqueda, y una de nuestras propias ejecuciones envió una. Volvió con un título de página y ningún producto de todos modos, así que el consejo y la cortesía apuntan en la misma dirección: envía URLs de producto. Segundo, las imágenes: el campo de imagen resuelve a una previsualización generada por la propia canalización de Vistaprint, y esos renders y las descripciones que los acompañan son obra protegida de alguien. Usarlos internamente para cruzar, enriquecer o vigilar un catálogo es práctica corriente; republicarlos como propios es otra pregunta con otra respuesta.

Nuestras condiciones son las mismas que en cualquier otro servicio de aquí. Solo páginas de acceso público, nada detrás de un inicio de sesión, sin rastreadores de terceros en la capa de datos, y las exportaciones se eliminan automáticamente a los 30 días. Tus primeras 500 filas son gratis y no necesitan tarjeta.

livescraper.app · qué condiciona una ejecución
Una URL de producto por fila
Páginas de producto, no de categoría ni de búsqueda
Sin datos de precio: la página no publica ninguno
Solo acceso anónimo
Las exportaciones se eliminan a los 30 días
Lo único que este servicio no puede darte es un precio de Vistaprint, y eso es una propiedad de la fuente y no del scraper.
Preguntas frecuentes

Lo que la gente pregunta antes de registrarse.

¿La exportación incluye precios de Vistaprint?+
No. En las dos ejecuciones que devolvieron filas reales de producto, price, parsed_price, currency y availability estaban vacías. La razón está en el origen: pide una página de producto de Vistaprint y sus datos estructurados contienen un bloque Product con nombre, descripción, SKU, MPN y marca, y ningún nodo de oferta ni precio alguno. Vistaprint cotiza por cantidad y acabado, así que no hay un precio único en la página. Ningún ajuste cambiará esto.
¿Qué columnas vuelven realmente con datos?+
Once de las diecisiete, en las filas reales que tenemos: query, name, brand, sku, sku_code, rating, url, description, image, images y status. Las seis que estaban vacías en todas las filas son price, parsed_price, currency, availability, reviews y product_url.
¿Qué columnas contiene la exportación?+
Diecisiete, en este orden: query, sku_code, product_url, name, description, parsed_price, price, currency, availability, rating, reviews, images, brand, sku, url, image y status. Una fila por URL de producto que envíes.
¿Puedo enviar una página de categoría o una URL de búsqueda?+
Puedes, pero no te dará productos. Una página de categoría en nuestras ejecuciones devolvió no product data found, y una URL /search?q=… devolvió status: ok con name diciendo «Search Results» y todos los demás campos vacíos. El robots.txt de Vistaprint además prohíbe /search a todos los rastreadores. Envía URLs de producto.
¿Van a bloquear mis peticiones?+
A veces. Tres de las ocho ejecuciones que tenemos volvieron con blocked (needs residential proxy), y una de ellas era la misma URL que funcionó ocho días después. Ocho ejecuciones son una muestra demasiado pequeña para citar una tasa de éxito, así que no la citamos, pero cuenta con reintentos en vez de dar por hecho un paso limpio.
¿Por qué sku y sku_code son iguales, e image e images también?+
En nuestras dos filas reales llevaban valores idénticos: PRD- más ocho alfanuméricos en el identificador, y una URL de Cloudinary en la imagen. El esquema conserva las parejas porque se comparte con otros catálogos donde las dos mitades difieren, así que revisa las dos antes de elegir una clave de cruce. Un aviso: images contiene comas que pertenecen a la transformación de Cloudinary, así que partir ese campo por una coma romperá la URL.
¿Qué significa la columna status?+
La escribe nuestro exportador, no Vistaprint, e informa de si esa fila se recuperó. A lo largo de nuestras ocho ejecuciones tomó cuatro valores: ok, blocked (needs residential proxy), no product data found y http 404. Una fila fallida llega igualmente con su motivo, así que puedes conciliar con tu lista de entrada.
¿Cuánto cuesta?+
Tus primeras 500 filas son gratis, por única vez y sin tarjeta. Después son 0,002 $ por fila, facturadas por filas realmente devueltas, sin suscripción y sin caducidad mensual de créditos.
¿En qué formatos puedo exportar?+
CSV, JSON o Excel. Las diecisiete columnas y su orden son los mismos en los tres.

Llévate el catálogo como una tabla.

Nombre, marca, SKU, valoración, descripción e imágenes para cada URL de producto que envíes, y una celda vacía honesta donde Vistaprint no publica precio. Tus primeras 500 filas son gratis, después 0,002 $ cada una.

Se activa al instante · sin tarjeta

Hacer scraping de datos de producto de Vistaprint

Vistaprint vende impresión y artículos promocionales personalizados -tarjetas de visita, folletos, señalización, ropa y bolsas con marca- a pequeñas empresas, y los vende por cantidad. Ese modelo comercial es lo más importante que hay que entender antes de hacerle scraping, porque decide qué puede y qué no puede contarte una página de producto. Cincuenta tarjetas de visita, doscientas, mil, en un soporte o en otro, con un acabado o con otro, son todos precios distintos de un mismo producto. Por eso no hay un precio único en la página.

No es una suposición. Las dos ejecuciones que hay detrás de esta página y que devolvieron filas reales de Vistaprint volvieron con price, parsed_price, currency y availability vacías, y pedir esas mismas dos páginas de producto directamente lo explica: cada una devuelve unos 745–843 KB de HTML renderizado en servidor -esto no es una cáscara JavaScript, a diferencia de algunos catálogos de esta familia- cuyo ld+json lleva un bloque Product con nombre, descripción, SKU, MPN y marca, y ningún nodo de oferta ni precio en ninguna parte. La valoración y el SKU publicados en esos datos estructurados coinciden exactamente con nuestra exportación, que es como sabemos que las filas son genuinas y que las celdas vacías son de la fuente y no nuestras.

Lo que sí vuelve es identidad. En las filas reales que tenemos, once de las diecisiete columnas venían con datos: la URL enviada, el nombre del producto, la marca, los dos campos de identificador, la valoración, la URL resuelta, la descripción, los dos campos de imagen y el estado. El identificador llega como PRD- seguido de ocho alfanuméricos y coincide con lo que los propios datos estructurados de la página llaman su SKU, lo que lo hace una clave de cruce fiable contra tus registros. La imagen es una URL de Cloudinary que envuelve una previsualización renderizada bajo petición y no una fotografía guardada, y una de las nuestras llegó a 1.697 caracteres: lo bastante larga para truncarse en una columna de ancho fijo, y con comas dentro de la transformación que corromperán la URL si partes el campo por ellas.

Dos advertencias prácticas. Envía URLs de producto: en nuestras ejecuciones una página de categoría devolvió no product data found y una URL de búsqueda devolvió una fila cuyo name decía «Search Results» con todo lo demás vacío, y el robots.txt de Vistaprint prohíbe /search a todos los rastreadores, así que el camino cortés y el camino útil coinciden. Y cuenta con bloqueos intermitentes: tres de nuestras ocho ejecuciones devolvieron blocked (needs residential proxy), incluida una sobre una URL que funcionó ocho días después. Ocho ejecuciones son una muestra demasiado pequeña para citar una tasa de éxito, así que no citamos ninguna; incluye reintentos en su lugar. Solo páginas de acceso público, sin rastreadores de terceros en la capa de datos, y las exportaciones se eliminan automáticamente a los 30 días. Tus primeras 500 filas son gratis y no necesitan tarjeta.