PROJETO

Raspar sites com automação Python configurável

Desenvolvimento de software personalizado, Extração de dados de sites, Automação Python configurável, Exportação estruturada para CSV e JSON, Renderização de páginas JavaScript, Execuções recorrentes do scraper, Entrega através de base de dados e API

  • Setor: Serviços de pesquisa
  • Alemanha Localização: Alemanha
  • Prazo de entrega: 10 semanas
  • Tecnologias: Python, JavaScript / TypeScript
3 meses

Este cliente dedica tempo à recolha de dados de produtos, anúncios e contactos em sites públicos. A recolha manual ou ocasional dificulta a realização repetível do trabalho de pesquisa. O software aceita URLs ou padrões de URL, seletores e regras de página. Depois, devolve registos estruturados em CSV, JSON ou Excel. Oferece a uma organização de pesquisa uma ferramenta configurável para a extração recorrente de dados de sites, incluindo páginas que exigem renderização baseada em navegador.

Resumo

Problema

A organização de pesquisa dedica tempo a substituir a recolha manual ou ocasional de dados de sites por uma extração repetível.

Solução

A solução tornou-se um scraper configurável que segue regras de página, processa conteúdo dinâmico e exporta registos estruturados.

Resultado

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

  1. Aceitar URLs, padrões de URL, seletores, XPaths ou ficheiros de configuração
  2. Extrair conteúdo selecionado para registos estruturados
  3. Seguir a paginação entre páginas e sites
  4. 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

Pode ser adicionado

+ Controlos de conformidade com Robots.txt + Agendamento na nuvem + Arquivo de dados + Documentação específica do projeto + Mapeamentos adicionais de bases de dados

Quem mais pode utilizar esta solução

Estas empresas têm uma tarefa semelhante, e a mesma solução pode ser adaptada à recolha de dados dos seus sites públicos.

Uma agência de estudos de mercado

Tarefa Recolhe dados de produtos, mercados e contactos em sites públicos.
Como a solução ajuda A solução ajuda-a a aplicar regras de extração repetíveis e a exportar registos de pesquisa estruturados.

Uma equipa de análise de dados

Tarefa Recolhe anúncios, tabelas e conteúdo selecionado em sites públicos.
Como a solução ajuda A solução ajuda-a a seguir a paginação, renderizar páginas dinâmicas e entregar registos em ficheiros ou bases de dados.

Uma consultora de pesquisa

Tarefa Arquiva ou analisa texto visível e conteúdo estruturado de páginas públicas.
Como a solução ajuda A solução ajuda-a a agendar execuções, rever falhas e manter os ficheiros gerados juntamente com os registos das execuções.

Pilha tecnológica

Python

Linguagem de automação

Python executa o scraper configurável, as regras de extração, o processamento de dados e as exportações.

JavaScript / TypeScript

Linguagem de automação de navegador

JavaScript ou TypeScript suporta a automação do navegador quando é utilizada extração baseada em navegador.

Requests

Solicitar páginas HTML

Requests (uma biblioteca Python para enviar pedidos web) obtém páginas para extração direta.

BeautifulSoup

Analisar HTML de páginas

BeautifulSoup (uma biblioteca Python para ler HTML) encontra campos selecionados e conteúdo visível na marcação da página.

Scrapy

Percorrer várias páginas

Scrapy (um framework Python para navegação web) segue páginas relacionadas e suporta extração em várias páginas.

Playwright

Renderizar páginas no navegador

Playwright é uma API de alto nível para automatizar navegadores durante a extração baseada em navegador.

Pandas

Processar dados extraídos

Pandas organiza os registos extraídos antes da exportação ou entrega.

openpyxl

Criar ficheiros Excel

openpyxl (uma biblioteca Python para ler e escrever ficheiros Excel) suporta saída XLSX.

CSV

Exportar registos de tabelas

CSV armazena registos extraídos num ficheiro tabular simples.

JSON

Exportar registos estruturados

JSON armazena campos extraídos como registos estruturados para ficheiros ou APIs.

Integrações

PostgreSQL

O scraper grava os registos recolhidos no PostgreSQL quando é necessária entrega numa base de dados.

REST JSON endpoint

A solução disponibiliza os registos recolhidos através de um endpoint REST JSON leve, quando solicitado.

Excel

A solução troca registos extraídos através de ficheiros XLSX.

Command line and local scheduling

O scraper é executado pela linha de comandos ou numa máquina local com cron ou Windows Task Scheduler.

O resultado

Definir regras de extração para cada site

O ecrã de configuração reúne sites-alvo, campos e seletores. Também estão disponíveis definições de paginação e conteúdo dinâmico.

Isto oferece à equipa de pesquisa um local claro para definir o que o scraper recolhe antes de uma execução.

Como funciona

  1. A configuração armazena URLs de sites, campos necessários e seletores ou XPaths.
  2. O scraper aplica regras de campos ao conteúdo selecionado das páginas.
  3. Os módulos de paginação e conteúdo dinâmico preparam a execução para páginas relacionadas e conteúdo renderizado no navegador.
  • As URLs-alvo podem ser endereços individuais ou padrões de URL.
  • As saídas incluem CSV, JSON ou Excel.
Nota: Limites de frequência, atrasos, definições de user-agent, novas tentativas e controlos de conformidade com robots.txt apoiam uma recolha responsável.
Configuração do scraper

Configuração do scraper

Funcionalidades deste ecrã
Extrair campos selecionados Processar paginação Renderizar conteúdo dinâmico

Rever registos estruturados de sites

A tabela de resultados apresenta campos extraídos, texto visível e tabelas como registos estruturados.

A exportação para CSV, JSON e Excel mantém os dados recolhidos prontos para ficheiros de pesquisa e análises posteriores.

Como funciona

  1. O módulo de extração cria registos a partir de campos selecionados, texto visível, tabelas ou anúncios.
  2. A tabela de resultados apresenta os campos extraídos e a contagem de registos.
  3. O módulo de exportação cria ficheiros CSV, JSON ou XLSX.
  • JSON é adequado para troca estruturada.
  • O Excel está disponível quando o âmbito da extração o exige.
Registos extraídos e exportação

Registos extraídos e exportação

Funcionalidades deste ecrã
Extrair dados estruturados Exportar dados para CSV ou JSON

Acompanhar execuções e investigar falhas

O histórico de execuções mostra sites-alvo, marcas temporais e estado. Também regista erros, novas tentativas e caminhos dos ficheiros gerados.

Os registos oferecem à equipa uma forma prática de rever a atividade do scraper quando uma página muda ou uma execução exige atenção.

Como funciona

  1. O scraper regista marcas temporais, sites-alvo e o estado de sucesso ou falha das execuções.
  2. O visualizador de registos apresenta mensagens de erro e informações sobre novas tentativas.
  3. As ligações para ficheiros gerados associam cada execução aos respetivos caminhos CSV, JSON ou de registos.
  • O histórico regista a atividade de recolha recorrente.
  • As mensagens de erro mostram problemas registados durante uma execução.
Histórico de execuções e registos do scraper

Histórico de execuções e registos do scraper

Funcionalidades deste ecrã
Registar atividade de scraping

Enviar registos para uma base de dados ou API

O ecrã de entrega prepara os registos recolhidos para utilização numa base de dados ou API, em vez de os deixar apenas em ficheiros de exportação.

O mapeamento de campos para o esquema e uma pré-visualização do payload JSON ajudam a alinhar os dados extraídos com a estrutura de destino.

Como funciona

  1. O módulo de destino armazena as definições da base de dados ou a configuração do destino.
  2. O módulo de mapeamento associa os campos extraídos ao esquema da tabela-alvo.
  3. O módulo de integração regista JSON compatível com o esquema, registos da base de dados e registos de execução.
  • A solução suporta entrega através de PostgreSQL quando necessário.
  • Está disponível um endpoint REST JSON leve para integrações solicitadas.
Entrega através de base de dados ou API

Entrega através de base de dados ou API

O que a solução oferece

Com esta solução, a organização de pesquisa pode:

  • Definir regras de extração para cada site-alvo
  • Recolher conteúdo selecionado em páginas paginadas
  • Processar conteúdo renderizado no navegador e carregado sob demanda
  • Exportar registos estruturados para CSV, JSON ou Excel
  • Rever falhas, novas tentativas e ficheiros gerados
  • Enviar registos recolhidos para uma base de dados ou API

Os sistemas prontos conseguiriam realizar o trabalho?

Antes da conceção, a tarefa foi comparada com produtos prontos com base nas suas próprias descrições.

O que o cliente precisa Software de extração de dados Data Extraction APIs de web scraping Oxylabs, Zyte, Scrapfly Ferramentas de scraping sem código Octoparse Solução personalizada
Aceitar URLs e regras de extração
Extrair conteúdo selecionado de sites
Seguir a paginação entre páginas
Processar conteúdo dinâmico do navegador parcialmente
Adequar-se às regras do cliente: etapas, funções e relatórios — — —
Todas as etapas num só lugar —
Sem etapas manuais entre programas parcialmente parcialmente

Com base nas descrições públicas dos produtos e da respetiva categoria.

As principais partes da tarefa existem em software de extração de dados, APIs de web scraping e ferramentas de scraping sem código. Um produto pronto é suficiente quando apenas uma parte da tarefa é necessária.

Este cliente precisava do seu próprio software porque as regras de extração, a operação local, a documentação, os formatos de saída, os registos e os requisitos de destino tinham de se adaptar ao trabalho de pesquisa num só lugar. As opções prontas também diferem na forma como tratam as etapas manuais entre programas.

No fim

No fim, a solução foi criada para retirar a recolha manual do percurso entre sites públicos e dados de pesquisa estruturados.

FAQ

Está a pensar criar um sistema semelhante? Leia as respostas abaixo para ver como o scraping configurável, as exportações, a renderização no navegador e a entrega podem adaptar-se a um fluxo de trabalho de pesquisa.