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).
- Scraping — extrai da página os dados que interessam.
- Parsing — decompõ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:
<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:
- Baixa a página (envia uma requisição HTTP e recebe o HTML).
- 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:
- 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
wwwe 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.