Проект
On-Site – извличане на данни от каталог с части
On-Site е дигитална агенция от Ротердам, специализирана в дигитални изживявания и e-commerce за B2B организации. Екипът проектира, изгражда и поддържа интегрирани решения върху утвърдени платформи — Umbraco, nopCommerce, Xperience by Kentico — в комбинация с low-code инструменти и собствена интеграционна платформа.
Голяма част от работата на On-Site се върти около данните: продуктовата, каталожната и клиентската информация да остава последователна и актуална във всеки канал. За проектите, в които тези данни трябва да се събират от външни източници в голям обем, On-Site работи със специалисти — и точно тук се включи noptech.
Проектът
Предизвикателството
On-Site имаше нужда от структурирани продуктови данни, извлечени от два големи каталога с части на производители — единият за селскостопанска техника, другият за powersports — от името на техни собствени клиенти. Тези каталози са дълбоки йерархични системи: машината се намира по сериен номер и след това се разбива ниво по ниво на възли, подвъзли и отделни части, всяка със собствена взривена схема и таблица с номера на частите.
Ръчното преписване не е опция. On-Site имаше нужда от повторяем и проверим процес на извличане, който произвежда чисти Excel експорти заедно с всички свързани изображения на схемите — първо като контролиран пилот върху малък набор данни, с възможност след това да се мащабира до целия каталог.
Нашият подход
Направихме собствен crawler на C# върху Selenium WebDriver, който управлява реален Chromium браузър, така че натоварената с JavaScript навигация на каталога да се държи точно както при жив потребител. Crawler-ът обхожда цялата йерархия за всеки сериен номер, взима схемата за всяко ниво и записва резултата в структуриран Excel файл — по един таб на ниво, подредени по нива, с номера на частите, описания и препратка към съответното изображение.
Пилотът работеше от една контролирана среда, за да може клиентът да прегледа качеството на данните, преди да поеме към голям обем. За втория проект интегрирахме Bright Data и преместихме събирането върху управлявана прокси мрежа с ротиращи IP адреси. Това дава на On-Site контролирано, разпределено обхождане, което се мащабира до пълен каталог, без да натоварва източника от един-единствен адрес.
Какво доставихме
- Crawler на C#/Selenium, който обхожда многонивови каталози с части по сериен номер, до всякаква дълбочина
- Excel експорти в точния формат, който клиентът изисква — табове, подредени по ниво, еднакви колони, готови за импорт в собствените им системи
- Пълни набори изображения на взривените схеми, съответстващи едно към едно на редовете в експорта
- Интеграция с Bright Data за разпределено, контролирано обхождане в обема на пълния каталог
- Инкрементално обхождане само на липсващите моделни години, така че вече събраните данни не се обработват повторно
- Валидация при всяка доставка: липсващи изображения, дупки в йерархията и отклонения във формата се хващат преди предаването
Резултатът
On-Site получи тестови набори данни достатъчно бързо, за да валидира подхода със собствения си клиент за дни, а след това и готов за продукция pipeline за пълното извличане. Данните идват точно в структурата, която системите им очакват, което премахва изцяло ръчното изчистване — а същата архитектура на crawler-а може да бъде насочена към следващи каталози само със смяна на логиката за навигация.
Технологии
C#
.NET
Selenium WebDriver
Chromium
Bright Data
Excel automation
headless browser automation