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
Casas de cambio, tiendas que fijan precios en varias monedas y contables usan este parser para guardar tipos de páginas abiertas en una tabla: moneda o criptomoneda, tipo de compra y de venta, tipo oficial, variación del día cuando se muestra, la fuente y la hora de la lectura. Envíenos las páginas de las que toma los tipos, como la tabla pública de tipos de un banco, y una o dos de ellas guardadas desde su navegador. Recibe código Python, un archivo de configuración y un README y lo ejecuta en su ordenador cuando necesite una lectura. Los tipos se copian tal como los muestra la página en ese momento: no es un servicio en directo y no da asesoramiento financiero ni previsiones. Cuando una fuente tiene un feed oficial de datos abiertos, se lo indicamos. 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.
- Compra y venta por separadoColumnas separadas, como números
- Hora de cada lecturaFecha y hora en cada fila
- Fuente en una columnaPara que los tipos de distintas páginas no se mezclen
- Ritmo prudenteNo cada segundo: una pausa que usted fija
- Se ejecuta en su ordenadorWindows, macOS o Linux, con Python
Cómo funciona
- 1FuentesUsted da las páginas de tipos y las monedas o criptomonedas
- 2ParserEscribimos el código y la guía para ejecutarlo
- 3EjecuciónLo ejecuta y compara la primera lectura con la web
- 4CambiosPide cambios dentro de su paquete y nos envía cualquier mensaje de error
Qué necesitamos de usted
Las páginas de las que toma los tipos, con enlaces, y las monedas o criptomonedas que necesita. Los campos en el orden de su tabla, p. ej., moneda, compra, venta, tipo oficial, variación, fuente, hora. Una o dos de esas páginas guardadas desde su navegador (Archivo > Guardar página como) o capturas. Con qué frecuencia necesita una lectura, el formato numérico (punto o coma), y CSV o Excel.
Le preguntaremos:
- ¿Qué páginas?
- Monedas o criptomonedas
- Los campos que necesita
- ¿Con qué frecuencia lo ejecutará?
Comparar paquetes
| Paquetes | BásicoTipos de una página22 US$ | EstándarLista y páginas de monedas43 US$ | PremiumHasta 3 fuentes76 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 (lista y página de moneda) | 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í |
| Hora de lectura en cada fila | Sí | Sí | 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
¿Puede actualizar los tipos cada segundo para operar?
No. Lee las páginas a un ritmo prudente cuando lo ejecuta, así que sirve para una lectura cada hora o cada día, no para operar. Para precios en directo, use la API oficial de un exchange; sus claves nunca van en nuestro código.
¿Puedo usar estos tipos para mis precios o mi contabilidad?
Qué fuente cuenta como oficial para usted lo deciden usted y su gestor. El parser copia los tipos tal como los muestra la página; no damos asesoramiento financiero.
¿Puede leer mi saldo o los tipos dentro de una cuenta de exchange?
No. Nunca inicia sesión, y las contraseñas, tokens y claves nunca van en el código ni nos llegan a nosotros.
¿Qué webs quedan fuera?
Google, Amazon, LinkedIn y las redes sociales, las páginas tras un captcha o un inicio de sesión, y los tipos mostrados como imágenes. Para otras webs, usted decide si sus condiciones lo permiten. Tras un cambio de estructura, el parser necesita una actualización.
¿No encontró su respuesta?


