Cheerio para JavaScript (Node.js): guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é Cheerio e para que serve?

\n\n

Cheerio é uma biblioteca rápida, flexível e leve para análise de HTML e XML no lado do servidor Node.js. Ela fornece aos desenvolvedores uma poderosa sintaxe semelhante ao jQuery para navegação, busca e manipulação da árvore DOM. Se você já trabalhou com jQuery no navegador, Cheerio parecerá intuitivo — Cheerio implementa um subconjunto do jQuery, adaptado para uso no servidor.

\n\n

Principais casos de uso do Cheerio:

\n
    \n
  • Web Scraping: Extração de dados de páginas da web (preços, títulos de notícias, conteúdo de artigos).
  • \n
  • Testes: Verificação da estrutura de templates HTML em testes unitários sem um navegador real.
  • \n
  • Pré-processamento de HTML: Limpeza, transformação e extração de partes de documentos HTML antes de enviar ao cliente.
  • \n
  • Análise de feeds RSS/XML: Processamento de documentos XML, embora existam ferramentas mais especializadas para XML.
  • \n
\n\n

Ao contrário de um mecanismo de navegador completo (como Puppeteer ou Playwright), Cheerio não renderiza JavaScript, não carrega CSS, imagens ou recursos externos. Isso o torna extremamente rápido e econômico em memória. Cheerio trabalha com uma string HTML já pronta, que você obtém, por exemplo, através de uma requisição HTTP (com axios, node-fetch ou o módulo http/https nativo).

\n\n

Instalação do Cheerio

\n\n

A instalação do Cheerio em um projeto Node.js é feita através do gerenciador de pacotes npm (ou yarn). Abra o terminal na raiz do seu projeto e execute:

\n\n
npm install cheerio
\n\n

Se você usa yarn:

\n\n
yarn add cheerio
\n\n

Após a instalação, você poderá importar a biblioteca no seu código:

\n\n
const cheerio = require('cheerio');\n// ou para módulos ES:\n// import * as cheerio from 'cheerio';
\n\n

Observe: Cheerio é uma biblioteca para Node.js e não foi projetada para funcionar no navegador. Se você precisar analisar HTML no lado do cliente, é melhor usar o DOMParser nativo.

\n\n

Início rápido: primeiro exemplo

\n\n

Vamos escrever um script simples que carrega uma string HTML, encontra todos os links nela e exibe seus textos e atributos href.

\n\n
const cheerio = require('cheerio');\n\n// Exemplo de código HTML (geralmente você o obtém através de uma requisição HTTP)\nconst html = `\n<html>\n<head><title>Exemplo de página</title></head>\n<body>\n    <h1>Bem-vindo!</h1>\n    <ul>\n        <li><a href="https://example.com">Link 1</a></li>\n        <li><a href="https://google.com">Link 2</a></li>\n        <li class="special"><a href="https://github.com">Link 3</a></li>\n    </ul>\n</body>\n</html>\n`;\n\n// Carregamos o HTML no Cheerio\nconst $ = cheerio.load(html);\n\n// Encontramos todas as tags <a> e as percorremos\n$('a').each((index, element) => {\n    const text = $(element).text();       // Texto dentro da tag\n    const href = $(element).attr('href'); // Valor do atributo href\n    console.log(`${index + 1}. ${text} - ${href}`);\n});\n\n// Resultado:\n// 1. Link 1 - https://example.com\n// 2. Link 2 - https://google.com\n// 3. Link 3 - https://github.com
\n\n

Como você pode ver, a sintaxe é muito semelhante ao jQuery: usamos a função $() para selecionar elementos e, em seguida, aplicamos os métodos .text(), .attr(), .each() para trabalhar com eles.

\n\n

Principais métodos e funções do Cheerio

\n\n

Abaixo está uma análise detalhada de 10 métodos-chave do Cheerio com descrição, parâmetros e exemplos.

\n\n

1. cheerio.load(html, options?)

\n

O que faz: Carrega uma string HTML e retorna a função principal $, através da qual

Recommendations