¿Qué es Cheerio y para qué sirve?
\n\nCheerio 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\nLos 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
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\nInstalación de Cheerio
\n\nLa 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\nnpm install cheerio\n\nSi usas yarn:
\n\nyarn add cheerio\n\nDespués de la instalación, podrás importar la biblioteca en tu código:
\n\nconst cheerio = require('cheerio');\n// o para módulos ES:\n// import * as cheerio from 'cheerio';\n\nTen 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\nInicio rápido: primer ejemplo
\n\nEscribamos un script simple que cargue una cadena HTML, encuentre todos los enlaces y muestre sus textos y atributos href.
\n\nconst 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\nComo 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.
Métodos y funciones principales de Cheerio
\n\nA continuación se presenta un desglose detallado de 10 métodos clave de Cheerio con descripción, parámetros y ejemplos.
\n\n1. cheerio.load(html, options?)
\nQué hace: Carga una cadena HTML y devuelve la función principal $, a través de la c
También en la biblioteca
Serialización de objetos en C++: bibliotecas y métodos
Trabajo con fechas en Kotlin: bibliotecas y herramientas para el desarrollo
Generación de informes PDF en JavaScript (Node.js): Resumen de bibliotecas y ejemplos de código
Validación de datos en PHP con la librería Respect\\Validation