Formatos e fontes de dados 8 min de leitura

Scraping, parsing e crawling: quais as diferenças?

Scraping, parsing e crawling: em que esses processos se diferenciam, como se relacionam entre si e por que são confundidos com tanta frequência.

EW
Equipe Web-Scraping.biz
Coleta de dados para as demandas do negócio
Publicado: 5 maio 2025

Estas três palavras aparecem juntas o tempo todo e muitas vezes são usadas como sinônimos. Na realidade são três processos distintos, que resolvem tarefas diferentes e que, na maioria das vezes, trabalham juntos — como elos de uma mesma corrente. Vejamos cada um separadamente, como eles se relacionam entre si e quais são os problemas típicos de cada um.

Na versão ultracurta:

  • Crawling (rastreamento)encontra as páginas (percorre os links).
  • Scrapingextrai da página os dados que interessam.
  • Parsingdecompõe o texto ou a marcação bruta em uma estrutura útil.

Parsing (análise sintática)

Parsing é a análise de dados segundo regras definidas e sua transformação de um formato «bruto» em um formato estruturado.

A palavra vem da ciência da computação, onde um parser é o componente que lê uma sequência de caracteres (por exemplo, o código-fonte de um programa, um JSON, um XML ou um HTML) e constrói a partir dela uma estrutura compreensível para a máquina: uma árvore, um objeto, um conjunto de campos.

Um exemplo simples. Temos uma string de HTML:

html
<div class="price">R$ 1.299</div>

O parser a converte em uma árvore de elementos (o DOM), pela qual dá para «navegar» e perguntar: «me entregue o conteúdo do elemento com a classe price». Na saída já não existe um amontoado de caracteres, e sim um valor claro, R$ 1.299, do qual depois se pode extrair o número 1299.

Importante: o parsing, por si só, não baixa nada da internet. Ele trabalha com texto que já se tem. É possível parsear um arquivo local, a resposta de uma API ou uma string recebida em uma mensagem. Parsing tem a ver com estrutura, não com origem.


Scraping

Scraping (web scraping) é a extração de dados específicos de páginas web.

Um scraper faz duas coisas:

  1. Baixa a página (envia uma requisição HTTP e recebe o HTML).
  2. Extrai dela os dados necessários: preços, manchetes, contatos, avaliações.

E é justamente no segundo passo que o scraper usa o parsing como ferramenta: para tirar o preço de uma página, primeiro é preciso parseá-la. Ou seja, o parsing é uma parte do scraping, sua etapa interna, não uma alternativa à parte.

O scraping costuma mirar dados específicos de páginas específicas. Tarefas clássicas: coletar os preços da concorrência, baixar um catálogo de produtos, reunir anúncios classificados, monitorar notícias.


Crawling (rastreamento)

Crawling (rastreamento) é o percurso sistemático de páginas seguindo os links.

O rastreador (também chamado de crawler, bot ou spider) parte de uma ou várias páginas iniciais, encontra nelas todos os links, segue por eles, descobre links novos — e assim por diante. Sua tarefa não é extrair um campo específico, e sim descobrir e percorrer o maior número possível de páginas.

O exemplo mais conhecido de rastreadores são os buscadores. Os robôs do Google e do Bing percorrem a internet sem descanso para saber quais páginas existem e poder indexá-las.

Nos projetos reais, crawling e scraping costumam se combinar: o rastreador percorre o catálogo de uma loja online página por página e, em cada ficha de produto encontrada, entra em ação o scraper, que extrai o preço, o nome e as características — e este, por sua vez, parseia o HTML por dentro para chegar até esses dados.


Como tudo se encaixa

O mais cômodo é imaginar uma linha de montagem:

Pipeline de coleta de dados: o crawling encontra páginas percorrendo os links, o scraping baixa o HTML e extrai os dados necessários, o parsing os decompõe em uma estrutura — uma árvore e campos prontos
  • O crawling responde à pergunta «quais páginas é preciso processar?»
  • O scraping«o que levar dessas páginas?»
  • O parsing«como transformar a marcação em dados?»

É possível parsear sem scrapear (analisar um arquivo que já se tem). É possível scrapear sem um crawling completo (quando a lista de páginas já é conhecida). E o crawling quase sempre anda de mãos dadas com o scraping: sem ele, percorrer páginas não faz sentido.


Sobre a terminologia: como esses termos são usados em português

Vale a pena fazer uma pausa aqui, porque em português convivem os termos em inglês, suas adaptações coloquiais e algumas traduções literais — e nem todos significam a mesma coisa.

Scraping. Para o processo completo de coletar dados de sites de forma automatizada, a comunidade lusófona usa o termo inglês: web scraping ou, simplesmente, scraping. A tradução «raspagem de dados» (ou «raspagem web») é o equivalente em português mais difundido — aparece na imprensa, em textos acadêmicos e em documentação traduzida —, mas no ambiente profissional «scraping» vence com folga: é o que se lê nas vagas de emprego, nos fóruns técnicos e na documentação das ferramentas. Daí sai o verbo coloquial scrapear: «scrapear os preços da concorrência», «scrapear um marketplace».

Parsing. Parsear é outro anglicismo plenamente assentado no jargão dos desenvolvedores lusófonos, mas com um significado mais estreito e bastante fiel ao original: processar o conteúdo que já foi baixado. Parseia-se um JSON, um XML, um log, um HTML já recebido: «parsear a resposta da API», «o parser engasga com esse HTML». Nos livros e na sala de aula o processo aparece como «análise sintática», mas no dia a dia dos projetos prevalecem «parsing» e «parsear». Repare na nuance: quem parseia não baixa nada — processa texto que já está em mãos.

Crawling / rastreamento. É o único dos três que conta com uma tradução portuguesa de uso corrente: rastrear. Quem a consolidou foi o mundo do SEO: a documentação do Google em português fala de «rastreamento» e «indexação», de «orçamento de rastreamento» (crawl budget) e de «rastreadores» (crawlers). Na conversa técnica alternam-se «rastrear» e o calco verbal crawlear, este último mais informal.

Onde está, então, a confusão? Não tanto nas palavras quanto no uso indistinto delas. No dia a dia, «scrapear um site» funciona muitas vezes como etiqueta para o processo inteiro — rastreamento, download e análise incluídos —, e não falta quem diga «parsear um site» quando na verdade descreve um scraping completo. Numa conversa informal ninguém se perde; mas, ao redigir documentação, orçar um projeto ou conversar com um cliente, a precisão compensa: scraping = extração automatizada de dados de páginas web, parsing = processamento do conteúdo já baixado, crawling/rastreamento = percurso de páginas seguindo links. E, se você trabalha com documentação em inglês, está com sorte: em português os três termos já circulam praticamente na forma original e correspondem um a um a scraping, parsing e crawling.


Problemas do parsing

O parsing parece simples enquanto a marcação é limpa. Na prática, atrapalham as coisas a seguir.

  • HTML «quebrado». Os navegadores são muito indulgentes: exibem a página mesmo com tags sem fechar ou aninhadas de forma errada. O parser, por sua vez, precisa adivinhar a estrutura de alguma maneira, e o resultado pode ser inesperado.
  • Estrutura que muda. Você define a regra «pegar o preço do elemento com a classe price», o site renomeia a classe um mês depois — e tudo quebra. Um parsing amarrado a uma marcação específica é muito frágil.
  • Conteúdo dinâmico. Muitos sites carregam os dados depois que a página já carregou, via JavaScript. No HTML inicial esses dados simplesmente não estão: não há o que parsear até a página ser «renderizada» em um navegador de verdade.
  • Codificações. Uma codificação mal detectada transforma o texto em símbolos ilegíveis (o clássico «mojibake»), e números e letras são extraídos com erros.
  • Ambiguidade. Às vezes, dados com significados distintos compartilham a mesma marcação e, sem regras adicionais, fica difícil distingui-los.

Problemas do scraping

Aqui, aos problemas do parsing somam-se as dificuldades de acessar um site alheio pela rede.

  • Proteção anti-bots. Os sites empregam CAPTCHA, limitação da frequência de requisições (rate limiting), bloqueios por IP e análise de comportamento. Um scraper ativo demais logo ganha um bloqueio.
  • Sites com JavaScript. Se os dados são carregados por scripts, uma requisição comum não basta: é preciso um navegador sem interface (headless browser) que execute o JS de verdade. É bem mais lento e pesado.
  • Fragilidade e manutenção. O site muda a marcação — e o scraper quebra. Todo scraper exige manutenção contínua; não é um «escrevi e esqueci».
  • Armadilhas (honeypots). Às vezes as páginas ganham links ou campos invisíveis para uma pessoa. O humano não os vê; o bot os segue — e se entrega.
  • Questões legais e éticas. Os termos de uso do site (ToS), os direitos autorais, os dados pessoais, a carga sobre servidores alheios. O que é tecnicamente possível nem sempre é admissível do ponto de vista legal: convém sempre verificar isso à parte.
  • robots.txt. O arquivo em que o site indica o que os bots podem e o que não podem percorrer. Respeita-se no mínimo por cortesia (e, muitas vezes, também por considerações legais e éticas).

Problemas do crawling

O crawling tem dificuldades próprias — elas nascem justamente do fato de o bot decidir sozinho quais links seguir e de a escala poder ficar enorme.

Loops e «armadilhas para rastreadores»

É, provavelmente, o problema mais característico do crawling.

  • Ciclos de links. A página A aponta para B, B aponta para C e C, de novo, para A. Se o rastreador não lembrar por onde já passou, vai girar em círculos indefinidamente. A solução básica: manter a lista de endereços (URLs) já visitados e não entrar neles de novo.
  • «Armadilhas» infinitas (crawler traps). Piores que os ciclos simples são os casos em que o site gera endereços novos sem fim. Exemplos clássicos:
  • O calendário. Um widget com o botão «mês seguinte» pode levar ao infinito: o rastreador vai continuar clicando em «avançar» até o ano 2099 e além.
  • Filtros e ordenações sem fim. Cada combinação de parâmetros no endereço (?sort=price&color=red&page=2…) parece uma página nova, embora o conteúdo seja quase o mesmo. E as combinações possíveis são astronômicas.
  • Identificadores de sessão no endereço. Se o site insere na URL um session id único, a mesma página parece nova a cada visita, e a lista de «visitados» não salva: os endereços são diferentes.
  • Páginas duplicadas. O mesmo conteúdo acessível em vários endereços (com barra final e sem ela, com www e sem ele, com parâmetros diferentes). Sem normalização de endereços, o rastreador gasta recursos com a mesma coisa repetidas vezes.

Tudo isso se resolve com a normalização das URLs (unificar os endereços), limites de profundidade do percurso, cotas de páginas por domínio, a poda das seções que «se multiplicam» de forma suspeita e a detecção de armadilhas.

Escala e cortesia

  • Volume. A internet (e até um único site grande) é enorme. É preciso decidir o que percorrer primeiro (priorização) e não tentar baixar tudo sem critério.
  • Carga sobre o servidor. Requisições frequentes demais podem «derrubar» um site alheio. Por isso se introduzem pausas entre requisições (crawl delay) e se limita o paralelismo: é o chamado rastreamento «educado».
  • Frescor dos dados. As páginas mudam. É preciso decidir com que frequência revisitar o que já foi percorrido para os dados não ficarem obsoletos.
  • Páginas invisíveis. Parte do conteúdo não se alcança seguindo links (atrás de formulários, de uma autenticação, na «web profunda»): ali o rastreador não chega sozinho.

Resumo breve

Processo O que faz Pergunta-chave Dor típica
Crawling (rastreamento) Percorre páginas seguindo links «Quais páginas processar?» Loops, armadilhas, escala, carga
Scraping Baixa a página e extrai os dados «O que levar da página?» Proteção anti-bots, sites JS, fragilidade, legalidade
Parsing Decompõe a marcação em estrutura «Como transformar o HTML em dados?» HTML «quebrado», marcação que muda, codificações

E o principal que vale guardar sobre a terminologia: na conversa cotidiana, «scrapear» serve de etiqueta para todo o processo de coleta de dados, mas, falando com precisão, o scraping extrai os dados, o parsing analisa a marcação já baixada e o crawling (rastreamento) descobre as páginas. Num bate-papo informal a diferença tanto faz; ao redigir documentação ou fechar um projeto, ela importa — e com as fontes em inglês você joga em casa, porque lá scraping, parsing e crawling significam exatamente isso.