Case study
On-Site – pobieranie danych z katalogu części
On-Site to agencja cyfrowa z Rotterdamu, specjalizująca się w cyfrowych doświadczeniach i e-commerce dla organizacji B2B. Zespół projektuje, buduje i utrzymuje zintegrowane rozwiązania na sprawdzonych platformach - Umbraco, nopCommerce, Xperience by Kentico - w połączeniu z narzędziami low-code i własną platformą integracyjną.
Duża część pracy On-Site kręci się wokół danych: dbania o to, by informacje o produktach, katalogach i klientach pozostawały spójne i aktualne we wszystkich kanałach. Przy projektach, w których te dane trzeba zbierać ze źródeł zewnętrznych na dużą skalę, On-Site współpracuje ze specjalistami - i tu wkroczyło noptech.
Projekt
Wyzwanie
On-Site potrzebowało ustrukturyzowanych danych produktowych wydobytych z dwóch dużych katalogów części producentów - jednego z maszyn rolniczych, drugiego z pojazdów powersports - na rzecz swoich własnych klientów. Te katalogi to głębokie, hierarchiczne systemy: maszynę wyszukuje się po numerze seryjnym, a następnie rozkłada poziom po poziomie na zespoły, podzespoły i pojedyncze części, każdą z własnym rysunkiem rozstrzelonym i tabelą numerów części.
Przepisywanie tego ręcznie nie wchodzi w grę. On-Site potrzebowało powtarzalnego, weryfikowalnego procesu ekstrakcji, który dawałby czyste eksporty do Excela wraz ze wszystkimi powiązanymi obrazami rysunków - najpierw jako kontrolowany pilotaż na małym zbiorze danych, z opcją późniejszego przeskalowania na cały katalog.
Nasze podejście
Zbudowaliśmy własny crawler w C# oparty na Selenium WebDriver, sterujący prawdziwą przeglądarką Chromium, tak aby mocno oparta na JavaScripcie nawigacja katalogu zachowywała się dokładnie tak, jak u człowieka. Crawler przechodzi pełną hierarchię dla każdego numeru seryjnego, zapisuje rysunek dla każdego poziomu i zapisuje wynik w ustrukturyzowanym skoroszycie Excela - jedna zakładka na poziom, uporządkowane według poziomów, z numerami części, opisami i odwołaniem do pasującego obrazu.
Pilotaż działał w jednym kontrolowanym środowisku, aby klient mógł ocenić jakość danych przed zdecydowaniem się na wolumen. W drugim projekcie zintegrowaliśmy Bright Data, przenosząc warstwę zbierania danych na zarządzaną sieć proxy z rotacją adresów IP. Daje to On-Site kontrolowane, rozproszone przeszukiwanie, które skaluje się do kompletnego katalogu bez obciążania źródłowej strony z jednego adresu.
Co dostarczyliśmy
- Crawler w C#/Selenium poruszający się po wielopoziomowych katalogach części według numeru seryjnego, na dowolną głębokość
- Eksporty do Excela w formacie dokładnie wymaganym przez klienta - zakładki posortowane według poziomów, spójne kolumny, gotowe do importu do jego własnych systemów
- Kompletne zestawy obrazów rysunków rozstrzelonych, dopasowane jeden do jednego do wierszy eksportu
- Integracja z Bright Data dla rozproszonego, kontrolowanego przeszukiwania w skali całego katalogu
- Przyrostowe przeszukiwanie wyłącznie brakujących roczników modelowych, dzięki czemu wcześniej zebrane dane nigdy nie były przetwarzane ponownie
- Kontrola poprawności przy każdej dostawie: brakujące obrazy, luki w hierarchii i odstępstwa od formatu wychwytywane przed przekazaniem
Rezultat
On-Site otrzymało testowe zbiory danych na tyle szybko, że w kilka dni mogło zweryfikować podejście ze swoim klientem, a następnie gotowy do produkcji potok dla pełnej ekstrakcji. Dane przychodzą w dokładnie takiej strukturze, jakiej oczekują ich systemy, co całkowicie usuwa etap ręcznego porządkowania - a tę samą architekturę crawlera można skierować na kolejne katalogi, wymieniając jedynie logikę nawigacji.
Technologie
C#
.NET
Selenium WebDriver
Chromium
Bright Data
Excel automation
headless browser automation