Evaluando propuestas

Desarrollador Python para Backend: Web Scraping y Postgresql

Publicado el 16 Abril, 2026 en Programación y Tecnología

Sobre este proyecto

Abierto

Busco desarrollador Python con experiencia en scraping y PostgreSQL para construir el backend de un sistema de inteligencia de mercado para compradores profesionales de coches de segunda mano en España.

El sistema detecta coches infravalorados en Wallapop y Milanuncios, calcula el margen potencial respecto al precio de mercado y alerta al comprador en tiempo real. Este proyecto cubre exclusivamente la capa de extracción de datos: el scraper que alimenta la base de datos PostgreSQL. El motor de scoring, las alertas y el frontend se construyen por separado.

FASE 1 — Scraper Python (2-2.5 semanas)

Scraper para 4 portales: Wallapop, Milanuncios, AutoScout24 y Coches.net. Tres modos configurables: bulk, incremental y selective.
· Input por url directa con filtros aplicados — no acepta keyword query
· modo incremental: ordena por newest, para al detectar listing_id ya visto en bd
· modo bulk (ejecución inicial única): carga completa del catálogo sin condición de parada. ~800.000 anuncios en 1-2 semanas. Reanudable desde checkpoint si se interrumpe.
· Modo selective: re-scrapea listing_ids específicos para detectar bajadas de precio o ventas
· Paginación completa automática según el portal
· Anti-ban: User-Agent rotativo, delays aleatorios, soporte proxies residenciales via PROXY_URL
· Deduplicación cross-portal: detectar mismo vehículo en dos portales y marcar is_duplicate=TRUE
· Validación de campos con pydantic v2 antes de escribir en BD
· Logging estructurado en tabla scraping_runs con resumen de cada ejecución
Entregables: Python 3.11+ en repo Git privado, Dockerfile, docker-compose.yml, .env.example, README, tests pytest cobertura mínima 70%.

FASE 2 — PostgreSQL + pipeline de escritura (1-1.5 semanas)
Escritura directa a Supabase (PostgreSQL 15+). Sin intermediarios.

· 3 tablas: listings (UNIQUE en listing_id + source), price_history y scraping_runs
· Upsert: insert si nuevo → update + price_history si bajó el precio → solo last_seen_at si no cambió
· índices para motor de scoring: (is_active, source), (brand, model, year), (price, km), published_at desc, province
· conexión via asyncpg con pool configurable. Migraciones versionadas. Script de seed con 200 anuncios.

FASE 3 — Despliegue en VPS incluido (2-3 días)
El dev configura el entorno de producción completo. El cliente NO necesita saber Docker, SSH ni Linux.

· Accede por ssh al vps hetzner cx21 (~5 eur/mes) que el cliente contrata y comparte
· instala docker, despliega el contenedor con variables de producción
· configura scheduler para ejecuciones automáticas cada 10-15 minutos
· verifica primer ciclo completo y datos en supabase

fase 4 — panel de administración (3-5 días)
supabase no tiene dashboard de gestión de crawlers. Se requiere un panel ligero (Retool, Appsmith o custom) conectado a Supabase con:

· Gestión de tareas por marketplace: frecuencia, pausar/reanudar, lanzar manualmente
· Estadísticas por ejecución: anuncios nuevos, actualizados, inactivos, errores
· Explorador de datos con filtros: país, provincia, marca, modelo, precio, km, fechas
· Dashboard de resumen: totales, última ejecución por portal, tasa de errores
· Exportación a CSV
Indica en tu propuesta qué stack usarías para este panel y por qué.

Stack obligatorio: Python 3.11+, httpx async, BeautifulSoup4, pydantic v2, asyncpg, tenacity, pytest, Docker. Playwright opcional si algún portal lo requiere — justificar si se usa.
No permitido: Scrapy, Selenium, SQLAlchemy ORM.

Se adjunta brief técnico completo con schema SQL exacto, criterios de aceptación verificables y condiciones de pago.

En tu propuesta incluye obligatoriamente:

Repositorio o fragmento de código de un scraper Python que hayas construido
Estimación de horas desglosada por fase
Si has trabajado antes con Wallapop, Milanuncios, AutoScout24 o Coches.net

Propuestas genéricas que no respondan estos 3 puntos no serán consideradas.

Presupuesto: 400-600 USD.

Este proyecto incluye mantenimiento continuo, integración de nuevos marketplaces y expansión a otros países europeos. Busco un socio tecnológico, no sólo un desarrollo puntual.

Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Crear un nuevo sitio personalizado

Plazo de Entrega: No definido

Habilidades necesarias