A categoria de móveis não era uma grade simples. A página combinava blocos editoriais, cards de categoria e cards de produto, então o automático precisava separar o container certo antes de qualquer selectorHint útil aparecer.
Exemplo guiado
madeiramadeira.com.br
Este caso foi mais difícil do que uma categoria estável de e-commerce. A página mistura blocos editoriais, vitrines e produtos, então o automático precisou separar o card certo, impedir que imagem virasse nome e alinhar preço e URL no mesmo item antes de chegar à planilha.
Objetivo
Extrair móveis para Excel
- nome
- preco
- url
URL alvo:
www.madeiramadeira.com.br/moveis
O que tornou o caso difícil
O card de produto não era o único repetido da página
O automático já conseguia entender que era uma lista de produtos, mas a página trazia camadas internas suficientes para confundir container, preço e URL. O problema deixou de ser só HTML e virou alinhamento estrutural do item real.
Foi necessário reforçar a descoberta do container, endurecer a semântica do campo nome, filtrar matches inválidos de preco e deduplicar a saída por url.
Linha do tempo
Como o caso foi fechado
Na primeira leitura ruim, o campo nome podia virar payload de imagem ou seletor amplo demais. O motor passou a bloquear data:image como nome e a preferir h2 real do produto quando ele existe no card.
O card tinha mais de um bloco interno parecido com preço. O motor passou a descartar matches que não coerem para o tipo real do campo, a usar âncora mais estável no list e a deduplicar a saída por URL.
Schema final
Campos que fecharam o caso
Nome do campo: nome
Tipo: string
Descrição: Nome do produto no card da listagem
Hint de seletor: div.cav--c-eNhzRw.cav--c-eNhzRw-fyOwyl-sm-6.cav--c-eNhzRw-dDYtoX-md-3 h2.overflow_hidden.text-overflow_ellipsis.d_-webkit-box
Nome do campo: preco
Tipo: number
Descrição: Preço final do produto no card da listagem
Hint de seletor: div.cav--c-eNhzRw.cav--c-eNhzRw-fyOwyl-sm-6.cav--c-eNhzRw-dDYtoX-md-3 div.d_flex.box_border-box.flex_column div.d_flex.box_border-box.flex_column
Nome do campo: url
Tipo: url
Descrição: URL do produto no card da listagem
Hint de seletor: div.cav--c-eNhzRw.cav--c-eNhzRw-fyOwyl-sm-6.cav--c-eNhzRw-dDYtoX-md-3 a.flex_column.d_flex.pos_relative
Resultado final
Quando considerar a categoria resolvida
- o modo deve sair como
list - a saída deve vir com uma linha por produto, sem duplicação por URL
- nome, preco e url devem sair preenchidos
- a planilha deve abrir pronta para uso sem revisão manual
O que este caso ensinou
Regras práticas para grids mistos
Em marketplaces e lojas mais editoriais, o seletor mais repetido pode apontar para categoria, carrossel ou wrapper genérico. O detector de container precisa entender link de produto, heading e sinal de preço ao mesmo tempo.
O alt da imagem ajudou como fallback, mas o resultado final ficou mais confiável quando o Intelbot passou a preferir o h2 do card como nome principal.
Mesmo com selectorHint correto, a mesma URL pode aparecer mais de uma vez quando a página repete vitrines internas. A saída final passou a manter a linha mais completa de cada produto.