Descrição do projeto
TraduzidoIgualmente importante é o que acontece após o carregamento da página. HTML bruto precisa se transformar em registros verificados e deduplicados, e preços, datas e números de telefone precisam ser normalizados para formatos uniformes antes de serem enviados ao banco de dados. Faz sentido armazenar apenas dados novos ou alterados, então precisamos de lógica incremental. Além disso, a transparência operacional é importante para nós: um painel mostrando taxas de sucesso e volumes de execução, notificações para falhas e anomalias de dados, e uma implantação reproduzível que pode ser iniciada do zero sem conhecimento tribal.
Os sites-alvo específicos são confidenciais e compartilhados sob NDA após a concordância dos termos. Em sua resposta, escreva sobre quais proteções contra bots você encontrou e como manteve o parser estável ao longo do tempo. Escopo completo do trabalho abaixo.
1. Arquitetura do scraper
— Scrapy + rotação de proxy e pool de User-Agent
— Playwright/Selenium para sites JS
— Bypass de CAPTCHA (2captcha / anti-captcha)
— Limitação de taxa, conformidade com robots.txt
2. Pipeline de dados
— HTML para JSON estruturado
— Validação e deduplicação
— Normalização de preços, datas, números de telefone
— Armazenamento PostgreSQL com design de esquema
— Atualizações incrementais (apenas registros novos/alterados)
3. Monitoramento e operações
— Painel: sucesso de execução, contagem de registros, erros
— Alertas no Slack/email sobre falhas
— Implantação com Docker Compose
— Agendamento com Cron e lógica de retry
Sites-alvo
— Confidencial (NDA) — detalhes após acordo
— Mistura de sites estáticos e SPAs
Entregáveis
— Código-fonte com testes
— Configuração do Docker Compose
— Migrações de esquema de banco de dados
— Runbook e configuração de monitoramento