Estamos buscando um desenvolvedor experiente para otimizar e refatorar um script de web scraping existente, desenvolvido em
Node.js e Puppeteer. O objetivo é aprimorar a robustez do script, garantir a extração precisa de dados e implementar funcionalidades de escalabilidade e persistência em banco de dados.
O script atual coleta preços e estoque de um portal B2B, mas apresenta as seguintes instabilidades e limitações que precisam ser resolvidas:
1. Ajuste no Fluxo de Login:
O site utiliza um sistema de login via pop-up/modal dinâmico que falha frequentemente em ambientes de servidor (headless). É Necessária uma solução robusta que garanta o login em 100% das tentativas, utilizando técnicas como cliques por coordenadas, manipulação de frames ou injeção de eventos.
2. Extração de Dados Específicos e Precisos:
O robô deve ser capaz de identificar e extrair com alta precisão as seguintes informações:
* Nome real do produto.
* Menor preço disponível: O site exibe tanto o preço de tabela quanto o preço promocional. O robô deve ser configurado para sempre priorizar e extrair o menor preço.
* Informação de estoque: Captura da quantidade disponível ou do status de disponibilidade do produto.
3. Escalabilidade (Input de Usuário):
O código atual está focado na busca de um item fixo. O script precisa ser refatorado para aceitar um input de usuário com múltiplos SKUs ou URLs, permitindo a busca e coleta de dados em lote. O formato de input pode ser via arquivo json, csv ou uma lista simples diretamente no código.
4. Integração com Banco de Dados:
Os dados coletados devem ser persistidos em uma tabela no Supabase, garantindo a integridade e acessibilidade das informações.
Requisitos Técnicos Essenciais:
* Domínio de
Node.js e bibliotecas de automação de navegador como Puppeteer (ou Playwright).
* Experiência comprovada em contornar proteções básicas de bot e manipulação complexa de iframes/modais.
* Conhecimento sólido em integração com Supabase/PostgreSQL para persistência de dados.
Observações:
* O nome do site específico será fornecido aos candidatos selecionados após o primeiro contato.
* Esperamos um código limpo, bem documentado (comentado) e pronto para ser integrado e executado em um ambiente de ci/cd, preferencialmente via github actions.
Prazo de Entrega: Não estabelecido