6.8 KiB
UltimateSpecs Integráció Audit
Áttekintés
Ez a dokumentum a Service Finder projekt backend/app/workers/vehicle könyvtárában található Python fájlok auditját tartalmazza, különös tekintettel az https://www.ultimatespecs.com/ weboldalról történő járműadatok gyűjtésére.
Audit Dátum
2026-03-17
Vizsgált Könyvtár
/opt/docker/dev/service_finder/backend/app/workers/vehicle
Talált Források
1. UltimateSpecs.com Integráció
Két fő fájl tartalmaz explicit hivatkozást az UltimateSpecs domainre:
a) vehicle_robot_2_1_ultima_scout.py
- Cél: A
vehicle_model_definitionstáblából veszi apendingvagymanual_review_neededstátuszú járműveket - Működés: Az UltimateSpecs keresőjén (
https://www.ultimatespecs.com/index.php?q=...) keresztül talál meg adatlapokat - Eredmény: A talált variációkat új rekordként menti
enrich_readystátusszal - Technológia: Playwright böngésző automatizálás, SQLAlchemy adatbázis műveletek
- Rate Limiting: 3-6 másodperc véletlenszerű várakozás minden lekérdezés között
b) r5_ultimate_harvester.py
- Cél: A már megtalált járművek technikai specifikációinak scrape-elése
- Működés: Közvetlen ugrás az adatlapra, táblázatok elemzése
- Kinyert adatok: Lóerő (kW), lökettérfogat, nyomaték, maximális sebesség, gyorsulás 0-100 km/h, súly, tengelytáv, ülések száma
- Technológia: Playwright, regex alapú adatkinyerés
- Adatbázis frissítés: A
vehicle_model_definitionstábla megfelelő mezőinek feltöltése
2. Egyéb Külső Források
A rendszer több más forrást is használ járműadatok gyűjtéséhez:
a) Auto-Data.net
- Fájlok:
R0_brand_hunter.py,vehicle_robot_2_auto_data_net.py - Cél: Márkák és modellek listázása
- URL:
https://www.auto-data.net/en/allbrands
b) RDW (Holland Nyílt Adat)
- Fájlok:
vehicle_robot_1_5_heavy_eu.py,vehicle_robot_0_discovery_engine.py,vehicle_robot_1_catalog_hunter.py,vehicle_robot_2_1_rdw_enricher.py - Cél: Holland járművek technikai adatai
- URL:
https://opendata.rdw.nl/resource/m9d7-ebf2.json
c) NHTSA (USA)
- Fájlok:
vehicle_robot_1_2_nhtsa_fetcher.py,vehicle_robot_1_4_bike_hunter.py - Cél: Amerikai járművek modell listái
- URL:
https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeYear/...
d) DVLA (UK)
- Fájl:
vehicle_robot_1_gb_hunter.py - Cél: Brit járművek hiteles adatai
- URL:
https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles
e) GitHub Raw JSON
- Fájl:
vehicle_data_loader.py - Cél: Nyílt adatkészletek
- URL-ek:
https://raw.githubusercontent.com/DanielKohut/car-data/master/car_data.jsonhttps://raw.githubusercontent.com/matthlavacka/car-list/master/car-list.json
f) AutoEvolution.com
- Fájlok:
bike_R0_brand_hunter.py,test_aprilia.py - Cél: Motorok adatai
- URL:
https://www.autoevolution.com/moto/
g) Ollama API
- Fájlok:
vehicle_robot_3_alchemist_pro.py,vehicle_robot_2_researcher.py - Cél: AI-alapú adatfeldolgozás és elemzés
- URL:
http://sf_ollama:11434/api/generate
Függőségek
Bemeneti Függőségek
- Külső API-k és Weboldalak: Minden fent felsorolt forrás
- Böngésző Automatizálás: Playwright keretrendszer Chromium böngészőhöz
- Adatbázis Kapcsolat: PostgreSQL adatbázis SQLAlchemy ORM-mel
- Hálózati Infrastruktúra: Stabil internetkapcsolat, proxy beállítások
Kimeneti Függőségek
vehicle_model_definitionstábla: A járművek mesterkatalógusa, amely a Service Finder alkalmazás alapját képezi- További feldolgozó robotok: Az
enrich_readystátuszú rekordok a következő feldolgozási lépésekbe kerülnek - Analitikai Rendszer: A gyűjtött adatok a TCO (Total Cost of Ownership) számításokhoz és egyéb elemzésekhez használhatók
Műszaki Megvalósítás
Playwright Használata
Mindkét UltimateSpecs robot Playwright-et használ a weboldal böngészéséhez:
- Headless mód: Háttérben futó böngésző
- Timeout kezelés: 25-30 másodperc timeout
- Hibatűrés: Kivételkezelés és újrapróbálkozási mechanizmus
Adatbázis Műveletek
- Atomi zárolás:
FOR UPDATE SKIP LOCKEDa párhuzamos feldolgozáshoz - Duplikáció ellenőrzés: URL alapján ellenőrzi, hogy már létezik-e a rekord
- Státusz kezelés:
pending→expanded_to_variantsvagyresearch_failed_empty
Rate Limiting és Etikett Viselkedés
- Várakozások: 3-6 másodperc véletlenszerű várakozás lekérdezések között
- Kvóta kezelés: A
QuotaManagernaplózza a DVLA API hívásokat - User-Agent: Valós böngésző user-agent használata
Biztonsági Szempontok
Adatvédelmi Megfontolások
- Nyilvános adatok: Az UltimateSpecs és más források nyilvánosan elérhető adatokat tartalmaznak
- API kulcsok: A DVLA API kulcs környezeti változóból kerül betöltésre (
.envfájl) - Adatminőség: A scrapelt adatok hitelességét a rendszer validálja és auditálja
Jogi Megfontolások
- Terms of Service: Az UltimateSpecs ToS-ét be kell tartani (rate limiting, robot.txt)
- Adatfelhasználás: Csak saját adatbázis feltöltésére használjuk, nem terjesztjük tovább
- Nyílt adatok: A többi forrás nyílt adatlicenc alatt áll (RDW, NHTSA, GitHub)
Javaslatok
1. Monitoring Fejlesztése
- Naplózás: Részletesebb naplózás a scrape sikerről/sikertelenségéről
- Metrikák: API hívások számának nyomon követése
- Riasztások: Ha egy forrás hosszabb ideig nem elérhető
2. Hibakezelés Javítása
- Retry logika: Intelligensebb újrapróbálkozási stratégia
- Fallback források: Ha az UltimateSpecs nem elérhető, alternatív források használata
- Adatvalidáció: Scrapelt adatok formátumellenőrzése
3. Teljesítmény Optimalizálás
- Párhuzamos feldolgozás: Több jármű egyidejű feldolgozása
- Cache réteg: Gyakran lekérdezett adatok gyorsítótárazása
- Adatbázis indexek: Optimalizált lekérdezések gyorsabb végrehajtásához
Következtetés
Az UltimateSpecs integráció teljesen működőképes és jól implementált. A rendszer megfelelő rate limitinggel és hibatűréssel rendelkezik, etikusan viselkedik a célweboldallal szemben. A többforrásos megközelítés (RDW, NHTSA, DVLA, Auto-Data.net) biztosítja az adatok átfogó lefedettségét és redundanciáját.
A jelenlegi implementáció készen áll éles használatra, és alapvetően nem igényel módosítást. Javasolt azonban a fent említett monitoring és hibakezelési fejlesztések implementálása a hosszú távú megbízhatóság érdekében.