ml Progetto Interno

Piattaforma di Monitoraggio Prezzi Auto Usate

Sviluppo di una piattaforma SaaS per il monitoraggio automatico dei prezzi delle auto usate in Italia, con scraping intelligente, analytics geografiche e sistema di alert.

La Sfida

Il mercato delle auto usate in Italia è frammentato su diverse piattaforme. Gli acquirenti perdono opportunità perché non riescono a monitorare costantemente i prezzi e identificare le occasioni migliori.

La Soluzione

Piattaforma SaaS con scraping automatizzato dei principali portali auto, tracking storico dei prezzi, analytics regionali e sistema di alert per variazioni significative.

Il Risultato

Sistema operativo 24/7 che monitora migliaia di annunci, identifica automaticamente le occasioni sotto-mercato e fornisce analytics dettagliate per regione e macro-area.

Il Contesto

Il mercato delle auto usate in Italia è distribuito principalmente su due piattaforme: AutoScout24.it e Subito.it. Per chi cerca un'auto, monitorare costantemente entrambi i portali è dispendioso in termini di tempo, e spesso le migliori occasioni vengono perse perché i prezzi cambiano rapidamente.

Le Sfide Principali

  • Frammentazione del mercato: annunci distribuiti su multiple piattaforme con formati diversi
  • Variabilità dei prezzi: i venditori modificano frequentemente i prezzi senza notifiche
  • Analisi geografica: difficoltà nel confrontare prezzi tra regioni diverse
  • Tempestività: le occasioni migliori vengono vendute rapidamente
  • Anti-bot protection: i siti implementano sistemi di protezione contro lo scraping automatizzato

L'Architettura

Piattaforma End-to-End

Il sistema è stato progettato come piattaforma SaaS multi-utente con architettura modulare:

Architettura Piattaforma

Componenti Principali

Layer Componente Funzione
Scraping Playwright + Stealth Raccolta dati con evasione anti-bot
Storage SQLAlchemy + SQLite Persistenza dati e storico prezzi
API FastAPI REST API e web interface
Scheduler APScheduler Esecuzione automatica ogni 6 ore
Notifications Telegram API Alert errori e blocchi

Multi-Source Scraping

Il sistema supporta due sorgenti dati con spider dedicati:

Sorgente Copertura Caratteristiche
AutoScout24.it Nazionale Brand/model slug, filtri avanzati
Subito.it Regionale URL regionali, categorie km

Stack Tecnologico

Application Layer

Technology Stack

Componente Tecnologia Configurazione
Runtime Python 3.10+ Ambiente virtuale
Framework FastAPI REST API + Jinja2 templates
ORM SQLAlchemy 2.0 Modelli relazionali
Browser Playwright Chromium headless + stealth

Anti-Detection Layer

Per evitare blocchi e rate limiting, sono state implementate tecniche avanzate:

Tecnica Implementazione
Stealth Mode playwright-stealth per fingerprint spoofing
User-Agent Rotation fake-useragent con rotazione realistica
Request Delay 2-4 secondi random tra richieste
Proxy Rotation IPRoyal residential con cambio IP automatico
Retry Logic Fino a 3 tentativi con nuovo IP su blocco

Data Model

Il database è strutturato per supportare multi-utenza e tracking storico:

Tabella Funzione
users Account utenti con ruoli (user/admin)
searches Ricerche salvate con filtri
user_searches Relazione N:N utenti-ricerche
cars Annunci trovati con metadati
price_history Storico variazioni prezzi
brands 55+ brand organizzati per paese
blog_posts Articoli blog in Markdown

Funzionalità

Dashboard Utente

La dashboard principale mostra le ricerche attive con statistiche aggregate:

  • Numero annunci trovati per ricerca
  • Prezzo medio, minimo e massimo
  • Variazioni recenti rispetto al giorno precedente
  • Quick link a deals e alerts

Price Tracking

Ogni annuncio mantiene uno storico completo delle variazioni di prezzo:

  • Grafico temporale delle variazioni
  • Confronto con media di mercato
  • Posizionamento percentile
  • Alert automatici su variazioni > 5%

Analytics Geografiche

Analisi dettagliate per area geografica:

Livello Metriche
Regione Min/Max/Media prezzi, conteggio annunci
Macro-Area Nord/Centro/Sud/Isole aggregati
Top 10 Regioni con più annunci

Deals Detection

Sistema automatico di identificazione occasioni:

  • Confronto prezzo con media di mercato
  • Filtro per percentuale di sconto
  • Ranking per convenienza
  • Link diretto all'annuncio originale

Sistema di Alert

Notifiche per eventi significativi:

  • Variazioni prezzo superiori alla soglia
  • Nuovi annunci matching criteri
  • Errori di scraping (via Telegram)
  • Blocchi proxy con cooldown 30 minuti

Sicurezza e Compliance

Autenticazione

Componente Implementazione
Password bcrypt hashing
Session JWT tokens
Ruoli User/Admin con permessi differenziati

GDPR Compliance

  • Privacy policy e Terms of Service dedicati
  • Gestione consensi utente
  • Possibilità di cancellazione account
  • Nessun tracking di terze parti

Deployment

Infrastruttura

Componente Configurazione
Server VPS dedicato
Domain pricepatrol.it
Service systemd unit
Deploy Git pull + restart

CLI Operations

Il sistema supporta operazioni da linea di comando:

python main.py init          # Inizializza database
python main.py scrape        # Scraping manuale
python main.py scheduler     # Avvia scheduler automatico
python main.py web           # Avvia web server

Risultati

Copertura

Metrica Valore
Piattaforme monitorate 2 (AutoScout24, Subito)
Regioni coperte 20 (tutte le regioni italiane)
Brand supportati 55+
Intervallo aggiornamento 6 ore

Performance

Metrica Valore
Uptime 99%+
Success rate scraping > 95%
Tempo medio per ricerca ~30 secondi
Retry su blocco Max 3 con nuovo IP

Estensibilità

ML-Ready Data

Il sistema raccoglie campi aggiuntivi per future applicazioni ML:

  • Tipo venditore (privato/dealer)
  • Potenza (CV)
  • Tipo carrozzeria
  • Numero e URL immagini

Roadmap

  • Espansione europea (altri paesi AutoScout24)
  • Notifiche email per alert
  • Export CSV/Excel
  • Dark mode UI
  • App mobile (PWA)

Lezioni Apprese

  1. Stealth scraping: playwright-stealth essenziale per evitare blocchi
  2. Proxy rotation: IP residenziali più affidabili dei datacenter
  3. Rate limiting intelligente: delay randomici più efficaci di fissi
  4. N:N relationships: permettono condivisione efficiente delle ricerche
  5. Config-driven: ricerche configurabili senza modifiche al codice
  6. Notification cooldown: evita spam su errori ripetuti

Stack Tecnologico

Python 3 FastAPI Playwright SQLAlchemy SQLite Jinja2 JWT Auth APScheduler Telegram API Proxy Rotation

Risultati in Numeri

2
Piattaforme monitorate
20
Regioni italiane
6h
Intervallo scraping
55+
Brand auto supportati

"La piattaforma permette di non perdere mai un'occasione sul mercato delle auto usate, con alert automatici e analytics che semplificano la ricerca."

Product Owner Progetto Interno

Hai un progetto simile?

Parliamo di come posso aiutarti a raggiungere i tuoi obiettivi.

Contattami