Cheerio para JavaScript (Node.js): guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Cheerio y para qué sirve?

\n\n

Cheerio es una biblioteca rápida, flexible y ligera para analizar HTML y XML en el lado del servidor de Node.js. Proporciona a los desarrolladores una potente sintaxis similar a jQuery para navegar, buscar y manipular el árbol DOM. Si alguna vez has trabajado con jQuery en el navegador, Cheerio te resultará intuitivo — Cheerio implementa un subconjunto de jQuery, adaptado para uso en servidor.

\n\n

Los principales casos de uso de Cheerio son:

\n
    \n
  • Web Scraping: Extracción de datos de páginas web (precios, titulares de noticias, contenido de artículos).
  • \n
  • Pruebas: Verificación de la estructura de plantillas HTML en pruebas unitarias sin un navegador real.
  • \n
  • Preprocesamiento de HTML: Limpieza, transformación y extracción de partes de documentos HTML antes de enviarlos al cliente.
  • \n
  • Análisis de feeds RSS/XML: Procesamiento de documentos XML, aunque para XML existen herramientas más especializadas.
  • \n
\n\n

A diferencia de un motor de navegador completo (como Puppeteer o Playwright), Cheerio no renderiza JavaScript, no carga CSS, imágenes ni recursos externos. Esto lo hace extremadamente rápido y eficiente en memoria. Cheerio trabaja con una cadena HTML ya preparada que obtienes, por ejemplo, a través de una solicitud HTTP (con axios, node-fetch o el módulo http/https integrado).

\n\n

Instalación de Cheerio

\n\n

La instalación de Cheerio en un proyecto Node.js se realiza a través del gestor de paquetes npm (o yarn). Abre la terminal en la raíz de tu proyecto y ejecuta:

\n\n
npm install cheerio
\n\n

Si usas yarn:

\n\n
yarn add cheerio
\n\n

Después de la instalación, podrás importar la biblioteca en tu código:

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

Ten en cuenta: Cheerio es una biblioteca para Node.js y no está diseñada para funcionar en el navegador. Si necesitas analizar HTML en el lado del cliente, es mejor usar el DOMParser nativo.

\n\n

Inicio rápido: primer ejemplo

\n\n

Escribamos un script simple que cargue una cadena HTML, encuentre todos los enlaces y muestre sus textos y atributos href.

\n\n
const cheerio = require('cheerio');\n\n// Ejemplo de código HTML (normalmente lo obtienes a través de una solicitud HTTP)\nconst html = `\n<html>\n<head><title>Página de ejemplo</title></head>\n<body>\n    <h1>¡Bienvenido!</h1>\n    <ul>\n        <li><a href="https://example.com">Enlace 1</a></li>\n        <li><a href="https://google.com">Enlace 2</a></li>\n        <li class="special"><a href="https://github.com">Enlace 3</a></li>\n    </ul>\n</body>\n</html>\n`;\n\n// Cargamos el HTML en Cheerio\nconst $ = cheerio.load(html);\n\n// Encontramos todas las etiquetas <a> y las iteramos\n$('a').each((index, element) => {\n    const text = $(element).text();       // Texto dentro de la etiqueta\n    const href = $(element).attr('href'); // Valor del atributo href\n    console.log(`${index + 1}. ${text} - ${href}`);\n});\n\n// Resultado:\n// 1. Enlace 1 - https://example.com\n// 2. Enlace 2 - https://google.com\n// 3. Enlace 3 - https://github.com
\n\n

Como puedes ver, la sintaxis es muy similar a jQuery: usamos la función $() para seleccionar elementos y luego aplicamos los métodos .text(), .attr(), .each() para trabajar con ellos.

\n\n

Métodos y funciones principales de Cheerio

\n\n

A continuación se presenta un desglose detallado de 10 métodos clave de Cheerio con descripción, parámetros y ejemplos.

\n\n

1. cheerio.load(html, options?)

\n

Qué hace: Carga una cadena HTML y devuelve la función principal $, a través de la c

Recommendations