DesarrolloProtecció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
Cuando traslada su propio catálogo a una tienda nueva, o un proveedor le permite usar sus fotos de producto, este parser guarda en una carpeta las imágenes de las páginas abiertas del catálogo y nombra cada archivo con el código de producto, con una tabla que relaciona código, nombre del producto, enlace de la imagen y nombre de archivo. Envíenos la web, una categoría y una página de producto, una o dos páginas guardadas desde su navegador y cómo nombrar los archivos. Recibe código Python, un archivo de configuración y un README y lo ejecuta en su ordenador, así que los archivos le llegan directamente a usted. Guarde solo imágenes que pueda usar: las suyas o las que el propietario le permita. Los archivos se guardan tal como los da la web. 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.
- Archivos con el nombre que quieraPor código de producto, con _1, _2, _3 para las fotos extra
- Una tabla que los acompañaCódigo, nombre del producto, enlace de la imagen y nombre de archivo
- La versión más grandeCuando la página enlaza a una imagen mayor, toma esa
- 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 el catálogo, una página de producto guardada y los nombres de archivo
- 2ParserEscribimos el código y la guía para ejecutarlo
- 3EjecuciónLo ejecuta y revisa la primera carpeta de imágenes
- 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 una página de producto, y cuántos productos e imágenes hay aproximadamente. Cómo nombrar los archivos, p. ej., por código de producto con _1, _2. Los campos de la tabla que necesita además del nombre de archivo. Una o dos de esas páginas guardadas desde su navegador (Archivo > Guardar página como). Y su confirmación de que las imágenes son suyas o de que el propietario le permite usarlas.
Le preguntaremos:
- ¿Qué web y qué páginas?
- Cómo nombrar los archivos
- ¿Cuántas imágenes aproximadamente?
- ¿De quién son las imágenes?
Comparar paquetes
| Paquetes | BásicoImágenes desde sus enlaces de productos22 US$ | EstándarUna categoría completa43 US$ | PremiumHasta 3 webs o secciones75 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í |
| Resultado | archivos de imagen + tabla | archivos de imagen + tabla | archivos de imagen + tabla |
| 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
¿Puedo descargar cualquier imagen que encuentre?
No. Las imágenes pertenecen a sus propietarios, así que el parser es para imágenes que pueda usar: su propio catálogo, o el de un proveedor con su permiso. Conseguir ese permiso le corresponde a usted.
¿Redimensionará las imágenes o quitará marcas de agua?
No. Los archivos se guardan tal como los da la web, sin redimensionar, cambiar de formato ni editar, y nunca quitamos marcas de agua.
¿Puede descargar de Google Imágenes, Amazon o redes sociales?
No. Google, Amazon, LinkedIn y las redes sociales quedan fuera: sus condiciones lo prohíben y las imágenes de esos sitios pertenecen a muchas personas distintas.
¿Cuánto espacio en disco necesitará?
Depende de la web: las fotos de producto suelen pesar de 200 KB a 1 MB cada una. Ejecútelo primero con una categoría y multiplique.
¿Y si la web cambia?
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?


