Situația inițială este că există un site web B2B pentru un furnizor de piese auto (un catalog închis cu cont personal) iar lista internă de prețuri din ERP-ul nostru devine depășită. Reconcilierea manuală durează 6-8 ore pe săptămână. Furnizorul nu are un API; Cardurile și soldurile produselor sunt disponibile numai prin interfața web după conectare. Site-ul include măsuri anti-bot (Cloudflare, jetoane dinamice, încărcare parțială prin XHR). Trebuie să automatizăm colectarea datelor și actualizarea bazei de date pentru importarea ulterioară în ERP. Mediu tehnic - server Linux (Ubuntu 22.04), Docker disponibil. Stiva preferată - Python 3.11, Playwright sau Selenium + interogări către XHR, PostgreSQL 14. Acces - cont de testare pe site, schemă separată în Postgres, SSH către server. Vom furniza un proxy dacă este necesar, dar este important să minimizăm încărcarea pe site. Rezultatul ar trebui să fie un depozit cu cod și un mediu Docker, care colectează catalogul și prețurile conform unui program, îl salvează în PostgreSQL și în plus realizează o încărcare CSV zilnică. Datele sunt necesare pentru toate produsele din secțiunile selectate ale catalogului. Cerințe pentru colectarea datelor - trebuie să extrageți SKU/articolul furnizorului, denumirea, marca, categoria/calea în catalog, prețul (cu valută), cantitatea/soldul disponibil, timpul de livrare dacă este specificat, linkul către card, data/ora parsării. Dacă în card există mai multe oferte/depozite, salvați fiecare ofertă într-un rând separat legat de SKU. Limitări - nu mai mult de 1 cerere pe secundă în medie pe domeniu, întârzieri aleatorii obligatorii, procesare corectă a banurilor/captcha-urilor fără retrayuri nesfârșite, stocarea login/parolă doar prin variabile/secrete de mediu, fără acreditări hardcoded. Analizorul trebuie să fie rezistent la defecțiuni parțiale ale rețelei și să poată continua de unde a rămas. Etape - 1) analiza site-ului și identificarea punctelor finale/token-urilor XHR, 2) dezvoltarea unui modul de autorizare și actualizare a sesiunii, 3) traversarea directoarelor cu coadă URL și deduplicare, 4) normalizare și scriere în PostgreSQL (upsert), 5) generare CSV și metrică simplă a calității datelor, 6) împachetare în Docker + instrucțiuni de rulare și exemplu cron. Criterii de acceptare (măsurabile) - 1) o trecere completă prin catalogul din 3 secțiuni selectate oferă cel puțin 95% din cardurile din numărul pe care site-ul îl arată în filtrul/contorul secțiunii (discrepanțele sunt permise din cauza produselor temporar indisponibile), 2) o reluare în 24 de ore actualizează doar înregistrările modificate, fără intervenție manuală și structura SQL, se completează tabelul CSVgre3) corespunde schemei convenite, 4) există un rezumat în jurnale - câte carduri au fost procesate, câte erori după tip, câte poziții au fost actualizate, 5) lansare pe server prin Docker Compose cu o singură comandă, 6) sarcina medie nu depășește limita și nu există 403/429 masiv în modul normal. Ce vă vom oferi - o listă de secțiuni de catalog, acces de testare, server, Postgres, un exemplu de format CSV necesar pentru ERP (coloane și separator).