Leitura de lojas online com Python e Puppeteer
Eu passo o dia todo rodando scrapers em marketplaces brasileiros. Já tentei todas as abordagens possíveis: Selenium puro, requests com headers manuais, até uma vez usei Playwright com modo headless em Docker no servidor. O problema é que cada site tem uma proteção diferente. Você acha que encontrou a URL certa da API, mas na verdade está capturando dados de um cache desatualizado. Vou explicar como fazer uma leitura confiável de lojas online, especialmente para quem precisa acompanhar preços e estoques de forma automatizada. O método que eu mais recomendo combina Puppeteer com um rotating proxy residencial. O custo médio fica entre 30 e 80 dólares por mês, dependendo do volume de requisições.
leitura loja online usando Puppeteer
A primeira coisa que você precisa entender é que simplesmente fazer um get para a URL não resolve. Grandes varejistas como Magalu, Americanas e Shopee detectam bots pelo fingerprint do navegador. Eu perdi cerca de três semanas no primeiro projeto tentando contornar isso com configurações manuais de headers. O truque é usar o stealth plugin para o Puppeteer. Ele injeta variáveis que imitam um navegador legítimo. A configuração básica no Node.js fica assim:
Instale as dependências: npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth. Depois, no script principal, carrega o stealth antes de inicializar o navegador. O código leva cerca de 30 linhas e cobre 90% dos sites que eu já precisei raspar. Um problema que eu encontrei recentemente foi com o site da Magazine Luiza. Eles mudaram a estrutura do DOM sem aviso prévio e meu scraper quebrou completamente. A workaround foi criar um sistema de fallback que testa seletores alternativos antes de travar. Se o primeiro seletor falhar, ele testa o segundo, terceiro e assim por diante. Isso reduziu meu tempo de manutenção em cerca de 60%
👉 Clique no botão abaixo para saber mais sobre o assunto!
Para quem está começando, o ideal é usar uma VPN com IPs residenciais trocados a cada 5 a 10 requisições. ISPs como Bright Data e Oxylabs oferecem planos a partir de US$ 15/mês com até 1 milhão de requisições. Evite proxies gratuitos. Eles são lentos e bloqueados na maior parte dos sites. Outro detalhe importante: muitos sites de e-commerce usam sessões JavaScript dinâmicas. Isso significa que o conteúdo que aparece na página não está no HTML inicial. Você precisa esperar o carregamento completo antes de extrair os dados. No Puppeteer, use o waitForSelector() especificando um tempo de timeout de 15 segundos.
Dica prática: armazene os dados em JSON e compare com o anterior usando uma diferença de preço. Eu uso uma função simples que normaliza os valores e dispara um alerta quando a variação ultrapassa 5%. Funciona bem para acompanhar promoções relâmpago. Se você precisa apenas de preço e disponibilidade, considere usar APIs oficiais quando disponíveis. Shopee e Mercado Livre têm endpoints documentados. O problema é que elas não cobrem todos os produtos e às vezes têm delay de até 30 minutos em relação ao site.
Há também a questão legal. Coletar dados públicos não é crime no Brasil, mas revender essas informações ou usar para fins comerciais sem autorização pode gerar problemas. Eu sempre incluo um rob.txt check no início do script para respeitar as regras de cada site. A estrutura final do projeto costuma ter três arquivos principais: o script de navegação, o parser de dados e o módulo de envio de alertas. Tudo isso roda em um cron job diário ou a cada hora, dependendo da criticidade das informações.
Se quiser baixar um template pronto, tem um repositório no GitHub chamado puppeteer-ecommerce-scrape que eu contribuí. O link é github.com/exemplo/template. Ele já vem com as configurações de stealth, proxy rotation e parser básico inclusas.