O que é Cheerio e para que serve?
\n\nCheerio é 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\nPrincipais 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
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\nInstalação do Cheerio
\n\nA 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\nnpm install cheerio\n\nSe você usa yarn:
\n\nyarn add cheerio\n\nApós a instalação, você poderá importar a biblioteca no seu código:
\n\nconst cheerio = require('cheerio');\n// ou para módulos ES:\n// import * as cheerio from 'cheerio';\n\nObserve: 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\nInício rápido: primeiro exemplo
\n\nVamos escrever um script simples que carrega uma string HTML, encontra todos os links nela e exibe seus textos e atributos href.
\n\nconst 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\nComo 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.
Principais métodos e funções do Cheerio
\n\nAbaixo está uma análise detalhada de 10 métodos-chave do Cheerio com descrição, parâmetros e exemplos.
\n\n1. cheerio.load(html, options?)
\nO que faz: Carrega uma string HTML e retorna a função principal $, através da qual