Descrizione del progetto
TradottoÈ altrettanto importante ciò che accade dopo il caricamento della pagina. L'HTML grezzo deve trasformarsi in record verificati e deduplicati, e prezzi, date e numeri di telefono devono essere normalizzati in formati uniformi prima di essere inseriti nel database. Ha senso memorizzare solo i dati nuovi o modificati, quindi abbiamo bisogno di una logica incrementale. Oltre a ciò, la trasparenza operativa è importante per noi: un dashboard che mostri i tassi di successo e i volumi di esecuzione, notifiche per errori e anomalie nei dati, e un deployment riproducibile che possa essere avviato da zero senza conoscenze tribali.
I siti web target specifici sono riservati e condivisi sotto NDA dopo che i termini sono stati concordati. Nella tua risposta, parla delle protezioni anti-bot che hai incontrato e di come hai mantenuto stabile il parser nel tempo. L'ambito completo del lavoro è riportato di seguito.
1. Architettura dello scraper
— Scrapy + rotazione dei proxy e pool di User-Agent
— Playwright/Selenium per siti JS
— Bypass CAPTCHA (2captcha / anti-captcha)
— Limitazione della velocità, conformità a robots.txt
2. Pipeline dei dati
— HTML a JSON strutturato
— Validazione e deduplicazione
— Normalizzazione di prezzi, date, numeri di telefono
— Archiviazione PostgreSQL con design dello schema
— Aggiornamenti incrementali (solo record nuovi/modificati)
3. Monitoraggio e operazioni
— Dashboard: successo dell'esecuzione, conteggio dei record, errori
— Avvisi Slack/email su errori
— Deployment con Docker Compose
— Pianificazione Cron con logica di ripetizione
Siti web target
— Riservati (NDA) — dettagli dopo l'accordo
— Mix di siti statici e SPA
Consegne
— Codice sorgente con test
— Configurazione Docker Compose
— Migrazioni dello schema del database
— Runbook e configurazione del monitoraggio