Case study
On-Site – extractie uit de onderdelencatalogus
On-Site is een in Rotterdam gevestigd digitaal bureau dat gespecialiseerd is in digital experience en eCommerce voor B2B-organisaties. Het team ontwerpt, bouwt en onderhoudt geïntegreerde oplossingen op beproefde platformen - Umbraco, nopCommerce, Xperience by Kentico - gecombineerd met low-codetooling en een eigen integratieplatform.
Een groot deel van het werk van On-Site draait om data: ervoor zorgen dat product-, catalogus- en klantinformatie consistent en actueel blijft over alle kanalen. Voor projecten waarin die data op schaal uit externe bronnen moet worden verzameld, werkt On-Site samen met specialisten - en daar kwam noptech in beeld.
Het project
De uitdaging
On-Site had gestructureerde productdata nodig uit twee grote onderdelencatalogi van fabrikanten - één in landbouwmachines, één in powersports - namens hun eigen klanten. Die catalogi zijn diepe, hiërarchische systemen: een machine wordt opgezocht op serienummer en vervolgens niveau voor niveau opgesplitst in samenstellingen, subsamenstellingen en losse onderdelen, elk met een eigen explosietekening en tabel met onderdeelnummers.
Dat met de hand overnemen is geen optie. On-Site had een herhaalbaar, verifieerbaar extractieproces nodig dat schone Excel-exports opleverde plus alle bijbehorende tekeningafbeeldingen - eerst als een gecontroleerde pilot op een kleine dataset, met de mogelijkheid om daarna op te schalen naar de volledige catalogus.
Onze aanpak
Wij hebben een eigen crawler in C# gebouwd bovenop Selenium WebDriver, die een echte Chromium-browser aanstuurt zodat de JavaScript-intensieve navigatie van de catalogus zich precies zo gedraagt als bij een menselijke gebruiker. De crawler doorloopt de volledige hiërarchie per serienummer, legt de tekening op elk niveau vast en schrijft het resultaat weg in een gestructureerde Excel-werkmap - één tabblad per niveau, geordend op niveau, met onderdeelnummers, beschrijvingen en de verwijzing terug naar de bijbehorende afbeelding.
De pilot draaide vanuit één gecontroleerde omgeving, zodat de klant de datakwaliteit kon beoordelen voordat er volume werd toegezegd. Voor het tweede project hebben wij Bright Data geïntegreerd, waarmee de verzamellaag verhuisde naar een beheerd proxynetwerk met roterende IP-adressen. Dat geeft On-Site gecontroleerd, gedistribueerd crawlen dat opschaalt naar een volledige catalogus zonder de bronsite vanaf één adres te overbelasten.
Wat we hebben opgeleverd
- Een crawler in C#/Selenium die meerlaagse onderdelencatalogi op serienummer doorloopt, tot elke gewenste diepte
- Excel-exports in het exacte formaat dat de klant vereist - tabbladen gesorteerd op niveau, consistente kolommen, klaar voor import in hun eigen systemen
- Complete beeldsets van explosietekeningen, één op één gekoppeld aan de rijen in de export
- Integratie met Bright Data voor gedistribueerd, gecontroleerd crawlen op het volume van een volledige catalogus
- Incrementeel crawlen van alleen de ontbrekende modeljaren, zodat eerder verzamelde data nooit opnieuw werd verwerkt
- Een validatieronde bij elke oplevering: ontbrekende afbeeldingen, gaten in de hiërarchie en afwijkingen van het formaat worden vóór de overdracht opgemerkt
Het resultaat
On-Site kreeg testdatasets snel genoeg om de aanpak binnen enkele dagen met hun eigen klant te valideren, en daarna een productieklare pijplijn voor de volledige extractie. De data komt binnen in precies de structuur die hun systemen verwachten, waardoor de handmatige opschoonstap volledig verdwijnt - en dezelfde crawlerarchitectuur kan op verdere catalogi worden gericht door alleen de navigatielogica te vervangen.
Technologieën
C#
.NET
Selenium WebDriver
Chromium
Bright Data
Excel automation
headless browser automation