Resumo
A organização de pesquisa dedica tempo a substituir a recolha manual ou ocasional de dados de sites por uma extração repetível.
A solução tornou-se um scraper configurável que segue regras de página, processa conteúdo dinâmico e exporta registos estruturados.
O software foi criado para reduzir a recolha manual e a inconsistência na extração.
História do cliente
O cliente é uma organização de pesquisa da Alemanha. Recolhe dados de produtos, anúncios e contactos em sites públicos para fins de pesquisa.
A recolha manual e ocasional consome tempo da equipa, sobretudo quando os sites-alvo usam paginação, estruturas de página variáveis e tabelas dinâmicas.
O pedido era simples: aceitar URLs ou padrões de URL, seletores configuráveis ou ficheiros de configuração, e devolver o conteúdo selecionado dos sites como registos estruturados.
A solução foi estruturada em torno de regras configuráveis para campos, navegação por várias páginas e renderização baseada em navegador. Execuções agendadas e registos claros apoiaram uma recolha repetível.
O cliente pediu
- Aceitar URLs, padrões de URL, seletores, XPaths ou ficheiros de configuração
- Extrair conteúdo selecionado para registos estruturados
- Seguir a paginação entre páginas e sites
- Processar páginas JavaScript, tabelas dinâmicas e carregamento sob demanda
Porque o software pronto não serviu
O software pronto de extração de dados abrange muitos tipos de fontes, enquanto os serviços geridos de scraping se concentram em APIs, infraestrutura de navegador e serviços de proxy. Este cliente precisava de campos, seletores e regras de paginação específicos do projeto. A solução também precisava de operação local, documentação e requisitos de saída definidos.
Visão geral do projeto
A solução foi concebida em torno de um ecrã de configuração do scraper, onde a equipa de pesquisa define URLs, campos e seletores-alvo. Também estão disponíveis regras de paginação e formatos de saída.
Para lidar com diferentes estruturas de páginas, o scraper utiliza regras de extração configuráveis para campos, texto visível e tabelas. Percorre páginas relacionadas e segue a paginação quando necessário.
Foi disponibilizada renderização baseada em navegador para páginas JavaScript, tabelas dinâmicas e conteúdo carregado sob demanda. As páginas estáticas podem usar pedidos HTTP diretos e análise de HTML.
A solução também foi preparada para operações repetíveis. É executada pela linha de comandos ou numa máquina local, suporta agendamento e regista falhas e novas tentativas.
Como resultado, os registos recolhidos podem ser exportados para CSV, JSON ou Excel. PostgreSQL, um endpoint REST JSON leve e a documentação do projeto permitem utilização posterior pela equipa do cliente.
Principais funcionalidades entregues
- URLs e padrões de URL configuráveis
- Editor de seletores de campos e XPath
- Navegação por várias páginas e paginação
- Renderização de JavaScript e conteúdo carregado sob demanda
- Exportação para CSV, JSON e Excel
- Limites de frequência, atrasos, novas tentativas e definições de user-agent
- Histórico de execuções e registos de scraping
- Entrega através de PostgreSQL ou REST JSON