DEV Community

Cover image for Web Crawling e Web Scraping
Felipe Cezar
Felipe Cezar

Posted on

Web Crawling e Web Scraping

1. Web Crawling (Rastreamento Web)

Tradução literal: Rastejar pela teia (web).

No jargão em português, chamamos de Rastreamento ou Indexação.

A Definição

O foco do Crawling não é pegar o conteúdo em si, mas sim descobrir caminhos.

Um Web Crawler, também chamado de Spider ou Bot, entra em uma página inicial, escaneia todos os links — tags <a href="..."> — que existem ali dentro, guarda esses links numa lista, entra em cada um deles, acha mais links, e continua fazendo isso num ciclo infinito até mapear a estrutura de um site inteiro ou da própria internet.

O Exemplo Clássico

O Googlebot.

O Google não tem funcionários digitando os sites novos que surgem. Ele tem robôs rastreadores que ficam pulando de link em link pela internet apenas "anotando" quais URLs existem para montar o catálogo do buscador.

No seu projeto de Artigos Científicos

Imagine que você entra na página principal de uma revista da Nature.

O Crawler é o script que vai entrar no sumário da edição daquele mês e varrer a tela apenas para descobrir e listar os 50 links individuais que levam para a página de cada artigo específico.

Ele não lê o artigo, ele só constrói a lista de URLs.

Ferramentas

  • Scrapy — o framework Python definitivo para isso
  • Apache Nutch

2. Web Scraping (Raspagem de Dados)

Tradução literal: Raspar a teia (web).

No jargão, chamamos de Raspagem de Dados ou Extração.

A Definição

O Web Scraping não quer saber de mapear o mundo; ele quer entrar em uma página específica, já com um endereço exato na mão, e extrair cirurgicamente uma informação útil de dentro daquela bagunça de código HTML.

Ele olha para a estrutura da página — as divs, classes e IDs — e puxa exatamente o texto ou arquivo que você mandou.

O Exemplo Clássico

Sites de comparação de preços, como o Buscapé.

Eles têm um script que entra na página exata de um modelo de TV na loja A, raspa só a div onde está escrito "R$ 2.500,00" e guarda no banco de dados deles.

No seu projeto de Artigos Científicos

Você pega aquela lista de 50 URLs que o seu Crawler descobriu.

Agora, o seu Scraper vai entrar em cada um desses links, procurar a tag HTML específica <div class="abstract-text"> para copiar o resumo do artigo, e depois procurar o botão <a id="download-pdf"> para forçar o download do arquivo.

Aqui, a ferramenta assíncrona httpx brilha muito para fazer os acessos rápidos, enquanto o Scraper faz a extração.

Ferramentas

  • BeautifulSoup — para raspar HTML estático
  • Selenium — para raspar sites dinâmicos
  • Playwright — para raspar sites dinâmicos que precisam clicar em botões ou rodar JavaScript

O Confronto Direto: Resumo

Característica Web Crawling (Rastreamento) Web Scraping (Raspagem)
Objetivo Principal Mapeamento e Descoberta Extração e Coleta de Dados
O que ele coleta? Apenas URLs, links e a hierarquia do site Textos, preços, imagens, tabelas, abstracts
Escala Geralmente navega por milhares ou milhões de páginas de forma ampla Geralmente foca em páginas específicas para extrair campos exatos
Analogia O cartógrafo que desenha o mapa da cidade anotando o nome de todas as ruas O carteiro que vai num endereço específico pegar uma encomenda exata

A Situação Real: Unindo os Dois no Fluxo ELT

No mundo real, para um projeto de engenharia de dados focado em IA, você constrói os dois trabalhando juntos em pipeline.

A Fase Crawler

Você roda o seu script, como o Scrapy, no portal de revistas científicas.

Ele navega pela paginação — "Próxima página", "Página 2", "Página 3" — e cospe para você um arquivo limpo só com uma coluna contendo 10.000 URLs de artigos que você não conhecia.

A Fase Scraper — Extract do ELT

Você pega essa lista de URLs e joga para o seu script de raspagem, usando httpx + BeautifulSoup.

Ele entra de cabeça em cada link, ignora as propagandas do site, raspa apenas os nomes dos autores, o abstract e puxa o PDF daquela página.

A Fase Load — ELT

Como você aprendeu a usar o ELT a seu favor, você salva tudo do jeito que veio direto no seu repositório bruto:

  • O abstract em um PostgreSQL ou MongoDB
  • O PDF no Amazon S3 ou em uma pasta local

E o trabalho de raspagem acaba aí.

A transformação pesada fica para depois.

Top comments (0)