Caso de estudo
On-Site – extração de dados do catálogo de peças
A On-Site é uma agência digital sediada em Roterdão, especializada em experiência digital e eCommerce para organizações B2B. A equipa concebe, constrói e mantém soluções integradas em plataformas comprovadas - Umbraco, nopCommerce, Xperience by Kentico - combinadas com ferramentas low-code e com a sua própria plataforma de integração.
Grande parte do trabalho da On-Site gira à volta dos dados: garantir que a informação de produtos, de catálogo e de clientes se mantém consistente e atualizada em todos os canais. Nos projetos em que esses dados têm de ser recolhidos de fontes externas em grande escala, a On-Site associa-se a especialistas - foi aí que entrou a noptech.
O projeto
O desafio
A On-Site precisava de dados de produto estruturados, extraídos de dois grandes catálogos de peças de fabricantes - um de máquinas agrícolas, outro de powersports - por conta dos seus próprios clientes. Estes catálogos são sistemas profundos e hierárquicos: uma máquina é procurada pelo número de série e depois decomposta nível a nível em conjuntos, subconjuntos e peças individuais, cada um com o seu próprio diagrama de vista explodida e a sua tabela de números de peça.
Copiar isso à mão não é opção. A On-Site precisava de um processo de extração repetível e verificável, que produzisse exportações Excel limpas e todas as imagens de diagramas associadas - primeiro como piloto controlado sobre um conjunto de dados pequeno, com a opção de escalar depois para o catálogo completo.
A nossa abordagem
Construímos um crawler à medida em C# sobre o Selenium WebDriver, conduzindo um browser Chromium real para que a navegação do catálogo, muito assente em JavaScript, se comporte exatamente como se comporta para um utilizador humano. O crawler percorre toda a hierarquia por número de série, capta o diagrama de cada nível e escreve o resultado num livro Excel estruturado - um separador por nível, ordenado por nível, com números de peça, descrições e a referência para a imagem correspondente.
O piloto correu a partir de um único ambiente controlado, para que o cliente pudesse rever a qualidade dos dados antes de se comprometer com o volume. No segundo projeto integrámos a Bright Data, passando a camada de recolha para uma rede de proxies gerida, com rotação de endereços IP. Isso dá à On-Site um crawling distribuído e controlado, que escala até um catálogo completo sem martelar o site de origem a partir de um único endereço.
O que entregámos
- Um crawler em C#/Selenium que navega catálogos de peças multinível por número de série, a qualquer profundidade
- Exportações Excel no formato exato exigido pelo cliente - separadores ordenados por nível, colunas consistentes, prontas a importar para os seus próprios sistemas
- Conjuntos completos de imagens de diagramas de vista explodida, associados um a um às linhas da exportação
- Integração com a Bright Data para crawling distribuído e controlado ao volume do catálogo completo
- Crawling incremental apenas dos anos de modelo em falta, para que os dados já recolhidos nunca fossem reprocessados
- Uma passagem de validação em cada entrega: imagens em falta, lacunas na hierarquia e desvios de formato detetados antes da entrega
O resultado
A On-Site recebeu conjuntos de dados de teste com rapidez suficiente para validar a abordagem com o seu próprio cliente em poucos dias e, depois, um pipeline pronto para produção para a extração completa. Os dados chegam exatamente na estrutura que os seus sistemas esperam, o que elimina por completo o passo de limpeza manual - e a mesma arquitetura de crawler pode ser apontada a outros catálogos, trocando apenas a lógica de navegação.
Tecnologias
C#
.NET
Selenium WebDriver
Chromium
Bright Data
Excel automation
headless browser automation