Web scraping com Cheerio e Node.js 2026

Adélia Cruz
Neural Network Developer
20-Nov-2025

O web scraping é uma técnica poderosa para extrair dados de sites, amplamente utilizada em análise de dados, pesquisas de mercado e agregação de conteúdo. Até 2026, utilizar o Cheerio e o Node.js para web scraping continua sendo uma abordagem popular e eficiente. Este artigo explorará o processo de uso do Cheerio e do Node.js para web scraping, fornecendo um guia completo e um exemplo prático.
Índice
- O que é Cheerio?
- Pré-requisitos
- Configurando o Projeto
- API de Seleção do Cheerio
- Escrevendo o Script de Scraping
- Executando o Script
- Desafios do Web Scraping com Cheerio
- Lidando com CAPTCHAs no Web Scraping
- Lidando com Páginas Dinâmicas
- Conclusão
O que é Cheerio?
Cheerio é uma implementação rápida, flexível e leve do jQuery projetada especificamente para aplicações no lado do servidor. Ele permite que os desenvolvedores analisem e manipulem documentos HTML usando uma sintaxe semelhante ao jQuery em um ambiente Node.js. Ao contrário de ferramentas baseadas em navegador, o Cheerio não realiza renderização real da web, mas manipula diretamente strings HTML, tornando-o extremamente eficiente para muitas tarefas de scraping. Por sinal, Puppeteer é uma excelente alternativa para scraping com Cheerio.
Pré-requisitos
Antes de mergulhar no código, certifique-se de que você tenha o Node.js e o npm (Node Package Manager) instalados no seu sistema. Se ainda não estiverem instalados, você pode baixá-los e instalá-los no site oficial do Node.js.
Configurando o Projeto
Passo 1: Criar um Novo Diretório do Projeto
Primeiro, crie um novo diretório para o seu projeto e inicialize-o como um projeto Node.js:
bash
mkdir web-scraping
cd web-scraping
npm init -y
A opção -y responde automaticamente "sim" a todas as perguntas, configurando um arquivo package.json padrão.
Passo 2: Instalar Dependências
Em seguida, instale as dependências necessárias, incluindo axios para fazer solicitações HTTP e cheerio para analisar HTML:
bash
npm install axios cheerio
Estou com dificuldades para resolver repetidamente o irritante CAPTCHA?
Descubra a resolução automática de CAPTCHA com a tecnologia de desbloqueio da web da Capsolver!
Claime seu Código de Bônus para as melhores soluções de CAPTCHA; CapSolver. |: WEBS. Após resgatá-lo, você receberá um bônus adicional de 5% após cada recarga, sem limite
API de Seleção do Cheerio
Cheerio é uma implementação rápida, flexível e leve do núcleo do jQuery projetada especificamente para o servidor. Ele permite que você use uma sintaxe semelhante ao jQuery para manipular documentos HTML em um ambiente Node.js.
Aqui está uma explicação detalhada da API de seleção do Cheerio com exemplos de código:
-
Carregando um Documento HTML:
javascriptconst cheerio = require('cheerio'); const html = ` <html> <head> <title>Exemplo</title> </head> <body> <h1 class="title">Olá, mundo!</h1> <div id="content"> <p>Este é um parágrafo.</p> <a href="https://example.com">Link</a> </div> </body> </html> `; const $ = cheerio.load(html); -
Selecionando Elementos:
-
Selector de Elemento:
javascriptconst h1 = $('h1'); // Seleciona todos os elementos <h1> console.log(h1.text()); // Saída: Olá, mundo! -
Selector de Classe:
javascriptconst title = $('.title'); // Seleciona elementos com class="title" console.log(title.text()); // Saída: Olá, mundo! -
Selector de ID:
javascriptconst content = $('#content'); // Seleciona o elemento com id="content" console.log(content.html()); // Saída: <p>Este é um parágrafo.</p><a href="https://example.com">Link</a> -
Selector de Atributo:
javascriptconst link = $('a[href="https://example.com"]'); // Seleciona o elemento <a> com um atributo href específico console.log(link.text()); // Saída: Link
-
-
Navegando e Manipulando Elementos:
-
Navegando pelos Elementos:
javascript$('p').each((index, element) => { console.log($(element).text()); // Imprime o conteúdo de texto de cada elemento <p> }); -
Modificando o Conteúdo dos Elementos:
javascript$('h1.title').text('Novo Título'); // Modifica o conteúdo de texto do elemento <h1> console.log($('h1.title').text()); // Saída: Novo Título -
Adicionando e Removendo Elementos:
javascript$('#content').append('<p>Outro parágrafo.</p>'); // Adiciona um novo elemento <p> dentro de #content console.log($('#content').html()); // Saída: <p>Este é um parágrafo.</p><a href="https://example.com">Link</a><p>Outro parágrafo.</p> $('a').remove(); // Remove todos os elementos <a> console.log($('#content').html()); // Saída: <p>Este é um parágrafo.</p><p>Outro parágrafo.</p>
-
Esses exemplos ilustram como você pode usar a API de seleção do Cheerio para selecionar, navegar e manipular elementos HTML de forma semelhante ao jQuery, mas dentro de um ambiente Node.js.
Escrevendo o Script de Scraping
Crie um arquivo chamado scraper.js no seu diretório de projeto. Este arquivo conterá o script para extrair dados de um site de destino. Adicione o seguinte código ao scraper.js:
javascript
const axios = require('axios');
const cheerio = require('cheerio');
// URL de destino
const url = 'https://example.com';
async function fetchData() {
try {
// Faz uma solicitação HTTP para buscar o conteúdo HTML
const { data } = await axios.get(url);
// Carrega o documento HTML no Cheerio
const $ = cheerio.load(data);
// Extrai dados do HTML
const title = $('title').text();
const headings = [];
$('h1, h2, h3').each((index, element) => {
headings.push($(element).text());
});
// Exibe os dados extraídos
console.log('Título:', title);
console.log('Títulos:', headings);
} catch (error) {
console.error('Erro ao buscar dados:', error);
}
}
fetchData();
Explicação do Código
- Importando Módulos: O script começa importando os módulos
axiosecheerio. - Definindo a URL de Destino: A URL do site a ser raspado é definida.
- Buscando Dados: A função
fetchDatafaz uma solicitação GET HTTP para a URL de destino usandoaxios. O conteúdo HTML da resposta é carregado no Cheerio. - Analisando HTML: Usando a sintaxe semelhante ao jQuery do Cheerio, o script extrai o conteúdo da tag
<title>e todos os elementos<h1>,<h2>e<h3>. - Exibindo Resultados: Os dados extraídos são registrados no console.

Executando o Script
Para executar o script de scraping, execute o seguinte comando no seu terminal:
bash
node scraper.js
Se tudo estiver configurado corretamente, você deverá ver o título da página raspada e o conteúdo de todas as tags de título impresso no console.
Desafios do Web Scraping com Cheerio
Embora o Cheerio ofereça várias vantagens para o web scraping, ele também apresenta seus próprios desafios que os desenvolvedores podem enfrentar:
-
Sites Dinâmicos e JavaScript: Um dos principais desafios com o Cheerio é lidar com sites dinâmicos que dependem fortemente do JavaScript. Sites modernos frequentemente usam JavaScript para carregar conteúdo dinamicamente após o carregamento inicial da página. Como o Cheerio analisa HTML estático, ele pode não capturar conteúdo gerado dinamicamente, o que pode limitar a eficácia da raspagem.
-
Medidas Antiraspagem: Os sites implementam várias técnicas antiraspagem para impedir a extração automatizada de dados:
- CAPTCHAs: Problema grave que você pode encontrar na raspagem que é projetado para distinguir entre humanos e robôs, os CAPTCHAs exigem que os usuários completem tarefas como reconhecimento de imagens ou entrada de texto.
- Bloqueio de IP: Os sites podem bloquear endereços IP associados a atividades de raspagem para evitar solicitações excessivas.
- Detecção de User-Agent: Detectar user-agents não padrão ou suspeitos ajuda os sites a identificar e bloquear raspadores.
- Páginas Web Dinâmicas: Sites que usam geração de conteúdo JavaScript dinâmico podem apresentar desafios, pois o conteúdo pode não estar diretamente acessível por meio da análise estática do Cheerio.
Como desenvolvedor de web scraping, entender esses desafios é crítico para abordá-los de forma eficaz. Existem muitas estratégias para mitigar soluções para esses problemas, e nas próximas páginas, explicaremos como resolver dois dos maiores problemas na raspagem com a solução de CAPTCHA e como lidar com páginas dinâmicas:
Lidando com CAPTCHAs no Web Scraping
CAPTCHAs representam um desafio significativo no web scraping, pois são projetados para distinguir humanos de robôs. Ao encontrá-los, seu script de raspagem deve resolvê-los para prosseguir de forma eficiente. Para empreendimentos de web scraping escaláveis, soluções como CapSolver oferecem alta precisão e capacidades rápidas de resolução de CAPTCHA.
Integração de Solucionadores de CAPTCHA
Vários serviços de resolução de CAPTCHA podem ser integrados aos seus scripts de raspagem. Aqui, focamos no CapSolver:
Passo 1: Registre-se no CapSolver
Para começar, acesse o painel do usuário do CapSolver e registre sua conta.
Passo 2: Obtenha sua Chave de API
Após o registro, recupere sua chave de API na página inicial do painel.

Código de Exemplo para Integração com CapSolver
Integrar o CapSolver ao seu projeto de web scraping ou automação é simples. Abaixo está um exemplo em Python mostrando como usar a API do CapSolver:
python
# pip install requests
import requests
import time
# TODO: defina sua configuração
api_key = "SUA_CHAVE_API" # sua chave de API do CapSolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # chave do site reCAPTCHA
site_url = "" # URL do seu site de destino
def resolver_captcha():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Falha ao criar tarefa:", res.text)
return
print(f"Obtive taskId: {task_id} / Recuperando resultado...")
while True:
time.sleep(3) # atraso
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("Solução falhou! Resposta:", res.text)
return
token_captcha = resolver_captcha()
print(token_captcha)
Este script ilustra como utilizar a API do CapSolver para resolver desafios de reCAPTCHA. Integrar uma solução como esta aos seus projetos de raspagem aumenta a eficiência ao automatizar a resolução de CAPTCHA, tornando o processo de extração de dados mais fluido.
Lidando com Páginas Dinâmicas
Para páginas web que carregam conteúdo dinamicamente por meio de JavaScript, você pode precisar usar um navegador sem cabeça como puppeteer. O Puppeteer pode simular um usuário real navegando na web, permitindo que você raspe conteúdo que aparece apenas após a execução do JavaScript.
Exemplo com Puppeteer
Aqui está um breve exemplo de como usar o Puppeteer em conjunto com o Cheerio:
javascript
const puppeteer = require('puppeteer');
const cheerio = require('cheerio');
async function fetchData() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const content = await page.content();
const $ = cheerio.load(content);
const title = $('title').text();
const headings = [];
$('h1, h2, h3').each((index, element) => {
headings.push($(element).text());
});
console.log('Título:', title);
console.log('Títulos:', headings);
await browser.close();
}
fetchData();
Este script inicia um navegador sem cabeça, navega até a URL de destino e recupera o conteúdo HTML após a execução do JavaScript. Em seguida, ele usa o Cheerio para analisar o HTML e extrair os dados desejados.
Conclusão
O web scraping com Cheerio e Node.js é uma combinação poderosa para extrair dados de sites de forma eficiente. A sintaxe semelhante ao jQuery do Cheerio torna fácil navegar e manipular documentos HTML, enquanto o Node.js fornece um ambiente robusto para lidar com solicitações HTTP e processar dados.
No entanto, os desenvolvedores devem estar cientes dos desafios impostos por conteúdo dinâmico e medidas antiraspagem, como CAPTCHAs. Integrar soluções como CapSolver pode ajudar a superar esses obstáculos, garantindo que seus scripts de raspagem permaneçam eficazes e confiáveis.
Espero que este artigo o ajude a começar com o web scraping em 2026 e forneça dados úteis para seus projetos!
Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.
Mais

Web Scraping com Selenium e Python | Resolvendo Captcha Ao Fazer Web Scraping
Neste artigo, você vai se familiarizar com a raspagem de dados da web usando o Selenium e o Python, e aprender a resolver o Captcha envolvido no processo para uma extração de dados eficiente.

Anh Tuan
04-Dec-2025

Web Scraping em Golang com Colly
Neste blog, exploramos o mundo da raspagem de web usando a biblioteca Colly em Golang. O guia começa ajudando você a configurar seu projeto Golang e instalar o pacote Colly. Em seguida, percorreremos a criação de um raspador básico para extrair links de uma página da Wikipedia, demonstrando a facilidade de uso e os recursos poderosos do Colly.

Adélia Cruz
04-Dec-2025

O que é Web Scraping | Casos de uso comuns e problemas
Conheça o web scraping: aprenda seus benefícios, resolva desafios com facilidade e impulso seu negócio com o CapSolver.

Ethan Collins
03-Dec-2025

O que é o Puppeteer e como usá-lo em web scraping | Guia Completo 2026
Este guia completo vai explorar o que é o Puppeteer e como usá-lo de forma eficaz na raspagem de web.

Nikolai Smirnov
03-Dec-2025

Como Fazer um Scraper de Web com Agente de IA (Guia Amigável para Iniciantes)
Aprenda como criar um raspador de web de agente de IA do zero com este tutorial amigável para iniciantes. Descubra os componentes principais, exemplos de código e como burlar medidas anti-bot como os CAPTCHAs para coleta de dados confiável.

Adélia Cruz
02-Dec-2025

Como integrar a resolução de CAPTCHA no seu fluxo de trabalho de raspagem com IA
Domine a integração de serviços de resolução de CAPTCHA no seu fluxo de trabalho de scraping com IA. Aprenda melhores práticas para reCAPTCHA v3, Cloudflare e AWS WAF para garantir uma coleta de dados confiável e em grande volume.

Adélia Cruz
28-Nov-2025


