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.

Ejemplo de resultado
Parser del catálogo de un proveedor de herramientas de jardín a Excel
Cómo queda el resultado
| Referencia | Nombre | Precio | Disponible | Peso | Foto |
|---|---|---|---|---|---|
| GT-1042 | Tijeras de podar, 20 mm | 18,90 | Sí | 0,24 kg | …/gt-1042.jpg |
| GT-1187 | Sierra plegable, 210 mm | 24,50 | Sí | 0,31 kg | …/gt-1187.jpg |
| GT-2210 | Tijeras para setos, hoja ondulada | 39,00 | No | 1,10 kg | …/gt-2210.jpg |
| GT-3305 | Pala de mano, acero inoxidable | 9,80 | Sí | 0,18 kg | …/gt-3305.jpg |
| GT-4120 | Manguera de jardín 25 m, 1/2" | 42,00 | Sí | 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
Tiendas que rellenan sus propias fichas de producto y compradores que eligen entre productos usan este parser para convertir las tablas de especificaciones de páginas de producto abiertas en columnas: nombre, código, precio y cada especificación, como tamaño, peso, potencia, material o garantía, en su propia columna con la unidad aparte. Los productos indican especificaciones distintas, así que usted nombra las que necesita, hasta el límite de campos de su paquete; las que falten quedan como celdas vacías. Envíenos la web, una categoría, dos páginas de producto guardadas desde su navegador y su lista de especificaciones. Recibe código Python, un archivo de configuración y un README, y lo ejecuta en su ordenador. Las especificaciones se copian tal como las escribe la página; no las comprobamos ni las completamos. Lee páginas abiertas a un ritmo prudente y nunca inicia sesión ni se salta captchas o protecciones. Usted decide si las condiciones de la web lo permiten; un cambio posterior de 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.
- Una especificación, una columnaListo para comparar productos uno al lado del otro
- Unidades apartep. ej., 1200 y W en columnas separadas
- Su lista de especificacionesSolo las especificaciones que nombre, en su orden
- Ritmo prudenteUna pausa entre páginas, fijada en la configuración
- Se ejecuta en su ordenadorWindows, macOS o Linux, con Python
Cómo funciona
- 1PáginasUsted da la web, dos páginas de producto guardadas y su lista de especificaciones
- 2ParserEscribimos el código y la guía para ejecutarlo
- 3EjecuciónLo ejecuta y revisa las especificaciones de dos productos
- 4CambiosPide cambios dentro de su paquete y nos envía cualquier mensaje de error
Qué necesitamos de usted
La web y las páginas exactas: un enlace a una categoría y a dos páginas de producto con especificaciones distintas, y cuántos productos hay aproximadamente. Su lista de especificaciones en el orden de su tabla, escritas como las escribe la web, y si las unidades van en columnas separadas. Dos páginas guardadas desde su navegador (Archivo > Guardar página como) o capturas. CSV o Excel.
Le preguntaremos:
- ¿Qué web y qué páginas?
- Su lista de especificaciones
- ¿Cuántos productos aproximadamente?
- Unidades
Comparar paquetes
| Paquetes | BásicoEspecificaciones desde sus enlaces de productos22 US$ | EstándarUna categoría, hasta 25 especificaciones43 US$ | PremiumHasta 3 webs75 US$ |
|---|---|---|---|
| Plazo | 1 día | 2 días | 3 días |
| Cambios | 1 | 2 | 3 |
| Webs | 1 | 1 | hasta 3 |
| Tipos de página | 1 | 2 (categoría y producto) | hasta 3 |
| Campos | hasta 10 | hasta 25 | hasta 25 en cada una |
| Recorre las páginas de una lista | No | Sí | Sí |
| Archivo de resultados | CSV | Excel o CSV | Excel, CSV o JSON |
| Duplicados eliminados, reanuda donde se detuvo | No | No | Sí |
| Hacer pedido Básico | Hacer pedido Estándar | Hacer 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.
Preguntas y respuestas
¿Y si los productos tienen especificaciones distintas?
Usted lista las especificaciones que necesita, y cada una tiene una columna; un producto que no tenga alguna queda con la celda vacía. Las especificaciones que no indique se omiten.
¿Puede alinear especificaciones de distintas webs?
En Premium, hasta 3 webs. Las webs nombran las especificaciones de forma distinta, así que usted nos dice qué nombres significan lo mismo, p. ej., “Peso” y “Peso neto”.
¿Puedo usar las especificaciones recogidas en mi tienda?
Compruebe qué puede usar: las descripciones y las fotos pertenecen a sus propietarios, y usted decide según las condiciones de la web. El parser solo guarda las imágenes que pueda usar.
¿Puede leer Amazon, Google o redes sociales?
No. Amazon, Google, LinkedIn y las redes sociales quedan fuera: sus condiciones lo prohíben. Tras un cambio en la estructura de una web, el parser requiere una actualización.
¿No encontró su respuesta?