Parser de catálogos de proveedoresDesarrollo y personalización

Un parser de Python que convierte el catálogo abierto de un proveedor en un archivo de importación para su tienda, con enlaces a fotos

Suele estar listo en 15 minutosCambios incluidosControl de calidad
Paquetes
Protección de pagoDetalles
  • Los cambios dentro del paquete son gratuitos.
  • Si no responde en los 3 días siguientes a la entrega, el trabajo se acepta automáticamente.

El dinero queda reservado al pagar y solo se libera cuando usted acepta el trabajo.

Un parser de Python que convierte el catálogo abierto de un proveedor en un archivo de importación para su tienda, con enlaces a fotos

Ejemplo de resultado

Ejemplo del paquete Estándar

Parser del catálogo de un proveedor de herramientas de jardín a Excel

Cómo queda el resultado

ReferenciaNombrePrecioDisponiblePesoFoto
GT-1042Tijeras de podar, 20 mm18,90Sí0,24 kg…/gt-1042.jpg
GT-1187Sierra plegable, 210 mm24,50Sí0,31 kg…/gt-1187.jpg
GT-2210Tijeras para setos, hoja ondulada39,00No1,10 kg…/gt-2210.jpg
GT-3305Pala de mano, acero inoxidable9,80Sí0,18 kg…/gt-3305.jpg
GT-4120Manguera de jardín 25 m, 1/2"42,00Sí2,90 kg…/gt-4120.jpg

El archivo del ejemplo tiene 1.236 productos de 52 páginas de lista.

Una parte del código

def product_links(list_url: str) -> Iterator[str]:
    """Enlaces a las páginas de producto de todas las páginas de la lista, siguiendo 'Siguiente'."""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """Una página abierta, a un ritmo prudente: una pausa entre peticiones y algunos reintentos si hay errores."""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s respondió %s, intento %d de 3", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} no se abrió tras 3 intentos")

Archivos: un archivo ZIP con scraper.py, settings.ini (la página inicial, la pausa entre peticiones, el nombre del archivo), requirements.txt y un README sobre cómo instalarlo y ejecutarlo. Solo lee páginas abiertas, una cada 2 segundos, y antes consulta el robots.txt de la web. El cliente lo ejecuta en su propio ordenador.

Cliente: una tienda de jardinería en línea que revende las herramientas de un proveedor; el proveedor tiene un catálogo abierto en su web, pero ningún archivo con la lista de precios. Tarea: recorrer las páginas de lista del catálogo, abrir cada página de producto y guardar en Excel la referencia, el nombre, el precio, la disponibilidad, el peso y el enlace de la foto principal, para comparar precios una vez por semana.

El cliente y todos los datos son ficticios.

Acerca de este servicio

Cuando un proveedor muestra su gama en una web abierta pero no envía ningún archivo, este parser copia el catálogo en una tabla que su tienda puede importar: nombre, código, precio, descripción, especificaciones, categoría y enlaces a fotos, y guarda las fotos en una carpeta. Envíenos la web del proveedor, enlaces a una categoría y a una página de producto, una o dos páginas guardadas desde su navegador y la plantilla de importación de su tienda, por ejemplo un CSV de Shopify o WooCommerce, para que las columnas la sigan. Recibe código Python con un archivo de configuración y un README y lo ejecuta en su ordenador. Use solo las fotos y textos que el proveedor le permita usar. Lee páginas abiertas a un ritmo prudente y nunca inicia sesión, ni se salta captchas o protecciones, ni recoge datos personales. Usted decide si las condiciones de la web lo permiten; un cambio posterior de su estructura requiere una actualización.

Qué incluye

  • Qué recibeUn archivo ZIP con el código Python, un archivo de configuración y un README con instrucciones paso a paso; el código también se muestra en la página del pedido.
  • Columnas para su importaciónEn el orden y con los nombres del archivo de importación de su tienda
  • Fotos listas para cargarEnlaces a fotos en una columna y archivos con el código de producto como nombre
  • Precios tal como aparecenEl precio del proveedor; su margen lo añade usted en la tabla
  • Ritmo prudenteUna pausa entre páginas, fijada en la configuración
  • Una guía sencillaQué instalar y cómo ejecutarlo, paso a paso

Cómo funciona

  1. 1
    CatálogoUsted da las páginas del proveedor y su plantilla de importación
  2. 2
    ParserEscribimos el código y la guía para ejecutarlo
  3. 3
    Importación de pruebaLo ejecuta e importa las primeras filas en su tienda
  4. 4
    CambiosPide cambios dentro de su paquete y nos envía cualquier mensaje de error

Qué necesitamos de usted

La web del proveedor: un enlace a una categoría y a una página de producto, y cuántos productos hay aproximadamente. La plantilla de importación de su tienda o una exportación de muestra de algunos de sus productos, para que las columnas coincidan. Los campos que necesita, como nombre, código, precio, descripción, especificaciones, categoría, fotos. Una o dos páginas del proveedor guardadas desde su navegador (Archivo > Guardar página como). Cómo nombrar los archivos de fotos. Y su confirmación de que el proveedor le permite usar sus fotos y textos.

Le preguntaremos:

  • ¿Qué web y qué páginas del proveedor?
  • Su tienda y su archivo de importación
  • ¿Cuántos productos aproximadamente?
  • Fotos

Comparar paquetes

PaquetesBásicoDe páginas de producto a una tabla22 US$EstándarUna sección completa del catálogo43 US$PremiumVarios proveedores o secciones76 US$
Plazo1 día2 días3 días
Cambios123
Webs11hasta 3
Tipos de página12 (categoría y producto)hasta 3
Camposhasta 10hasta 25hasta 25 en cada una
Recorre las páginas de una listaNoSíSí
Archivo de resultadosCSVExcel o CSVExcel, CSV o JSON
Duplicados eliminados, reanuda donde se detuvoNoNoSí
Fotosenlaces en una columna, archivos a una carpetaenlaces en una columna, archivos a una carpetaenlaces en una columna, archivos a una carpeta
Hacer pedido BásicoHacer pedido EstándarHacer pedido Premium

Protección de pago

Usted paga al hacer el pedido, pero el dinero solo se libera por un trabajo aceptado.

  • Precio fijoEl precio del paquete no cambia después del pago.
  • El dinero queda reservadoAl pagar, el importe solo queda reservado. Pasa a Dleex cuando usted acepta el trabajo.
  • Revisado antes de la entregaCada resultado pasa un control de calidad antes de llegar a usted, y lo ve en la página del pedido antes de aceptarlo.
  • Cambios gratuitosSolicite cambios dentro de su brief tantas veces como permita el paquete.
  • Aceptación a los 3 díasSi en los 3 días siguientes a la entrega no acepta el trabajo ni solicita cambios, se acepta automáticamente. Si escribe en el chat del pedido después de la entrega, el pedido queda en espera; cuando le respondamos, podremos reiniciar el plazo de 3 días y se lo indicaremos en el chat.
  • Rehacer el trabajo o reembolso totalSi el resultado no se ajusta a su brief y los cambios no lo resolvieron, o el trabajo tarda más del doble de su plazo, escriba en el chat del pedido: rehacemos el trabajo o le reembolsamos el pago íntegro.
Cómo funciona →

Preguntas y respuestas

¿Se importará el archivo en mi tienda directamente?

Las columnas siguen la plantilla que envía, así que en la mayoría de casos sí. Comprobamos el archivo con su plantilla, no dentro de su tienda, así que haga una pequeña importación de las primeras filas antes de cargarlo todo.

¿Puedo usar las fotos y descripciones del proveedor?

Solo si el proveedor lo permite: pertenecen a su propietario, y conseguir el permiso le corresponde a usted. El parser solo guarda imágenes que pueda usar.

¿Puede leer precios de distribuidor tras el acceso del proveedor?

No. Nunca inicia sesión, así que los precios de distribuidor o mayoristas tras una cuenta quedan fuera de su alcance. Pida al proveedor un archivo de precios; el parser sigue recogiendo el resto del catálogo abierto.

¿Puede copiar un catálogo de Amazon, Google o una tienda en redes sociales?

No. Sus condiciones lo prohíben; lo mismo vale para LinkedIn y otras redes sociales. Use la exportación oficial del servicio o pida un archivo al vendedor.

¿Y si el proveedor cambia su web?

El parser sigue las páginas tal como son ahora. Un cambio posterior de estructura requiere una actualización, que es un pedido nuevo.

¿No encontró su respuesta?

Paquetes