• Analizator de catalog de piese de schimb cu protecție anti-bot și normalizare a datelor în actualizări PostgreSQL + diff

    17 zile în urmă
    • Buget dorit până la 650.01 USD
    • Se așteaptă un executant...
  • Situație inițială: în departamentul de aprovizionare menținem propriul catalog de piese auto și de schimb. Furnizorul publică prețurile curente, soldurile și aplicabilitatea într-un catalog B2B închis, unde paginile sunt redate prin JS, unele solicitări merg la XHR, există un antibot (verificări header, rate-limit, CAPTCHA periodic), iar cardurile de produse își schimbă structura. Avem nevoie de un parser stabil care actualizează în mod regulat datele și înregistrează modificările, astfel încât să nu comparăm totul manual.

    Mediu tehnic și introduceri: Linux (Ubuntu 22.04), Python 3.11, PostgreSQL 15. Implementare în Docker Compose. Acces la B2B prin parola de conectare și 2FA folosind un cod unic din e-mail (va fi oferit accesul IMAP). Vom oferi proxy, dar calitatea acestora variază. Stocăm 2 limbi de descriere (RU/EN), monedele pot fi diferite.

    Ce ar trebui să se întâmple: un serviciu care, după un program, culege categorii și produse dintr-un catalog B2B, trage articolul, marca, denumirea, prețurile pe depozit, solduri, timpi de livrare, aplicabilitate/analogii, link-uri către imagini, caracteristici (key-value) pentru fiecare produs și, de asemenea, marchează articolele întrerupte. Datele ar trebui să fie stocate în PostgreSQL într-o schemă normalizată cu un istoric al modificărilor (prețuri/rămășițe) și posibilitatea de a încărca în CSV.

    Etape de execuție:
    1) Analiza sursei și a protocolului: determinați punctele de intrare, punctele finale XHR, parametrii de filtrare/paginare, limite, semnături de solicitare, comportament antibot, strategii de retray.
    2) Implementarea login și sesiuni: autorizare, procesare 2FA prin IMAP, stocare sesiune, reînnoire automată, stocare securizată a secretelor prin env.
    3) Colectarea datelor: crawling categorii, paginare, colectare carduri, încărcare imagini numai atunci când este necesar (steagul), extragerea caracteristicilor și analogilor, normalizarea valutelor/unităților de măsură.
    4) Stocare: Schema PostgreSQL (produse minime, oferte/depozite, solduri, preturi-istoric, analogi, caracteristici, media), migrari, indici, logica upsert si actualizări de dif.
    5) Stabilitate: rotație proxy, limitarea vitezei, backoff, detectarea blocării, trecerea la o rută alternativă (XHR vs HTML), jurnalele detaliate și valorile de execuție.
    6) Export și rapoarte: comenzi CLI pentru exportul CSV după filtre (marca, categorie, dată), raportarea modificărilor pentru perioada (cate produse s-au modificat după preț/rămăși).

    Restrictii:
    - CAPTCHA nu poate fi rezolvată prin servicii externe plătite. Dacă apare un CAPTCHA, sarcina analizorului este să capteze corect evenimentul, să schimbe proxy/pauză și să continue fără introducere manuală cât mai mult posibil.
    - Încărcarea site-ului: nu mai mult de 1 cerere pe secundă per proxy, maxim 3 lucrători paraleli.
    - Cod fără conexiune la GUI, control prin CLI și config.

    Criterii de acceptare măsurabile:
    - O rulare repetată pe un set de testare de 5 categorii ar trebui să colecteze cel puțin 95% din produsele găsite prin căutarea încorporată pe site (erorile sunt permise din cauza blocării temporare, dar ar trebui incluse în raport).
    - Pentru 100 de produse alese aleatoriu, datele din baza de date se potrivesc site-ului pe articol, marcă, preț și sold (o vom verifica manual folosind lista).
    - În timpul celei de-a doua rulări fără modificări, duplicatele inutile nu sunt create în sursă și istoricul prețurilor/rămășițelor nu este completat.
    - Jurnalele conțin: numărul de pagini procesate, produse, erori după tip, timpul mediu de răspuns, numărul de blocări/retrayuri.
    - Docker Compose ridică totul cu o singură comandă, există un README cu instrucțiuni de lansare, variabile de mediu și exemple CLI.

    Instrumente preferate: Playwright (Python) pentru JS/anti-bot crawling + solicitări/httpx acolo unde este posibil; Alambic pentru migrații; jurnalele structurate (json).
Oferta ta

Încă nu ai trimis o ofertă pentru această comandă.
Apasă „Trimite o ofertă” pentru a o trimite.

Aveți nevoie de o sarcină similară?

Dacă acest proiect este apropiat de ceea ce aveți nevoie, puteți consulta servicii gata în categorie sau publica propria sarcină cu bugetul, termenul și cerințele necesare.

The project «Analizator de catalog de piese de schimb cu protecție anti-bot și normalizare a datelor în actualizări PostgreSQL + diff» can be used as a reference for your own brief: what should be done, what result is needed and what budget to set.