Parseo de HTML en TypeScript: bibliotecas, herramientas y ejemplos de código

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

Parseo de HTML en TypeScript: resumen de las mejores bibliotecas y herramientas



El parseo de HTML es una de las tareas clave en el desarrollo de aplicaciones web modernas, especialmente en el ámbito del web scraping, la automatización de pruebas y el análisis de datos. TypeScript, como superconjunto tipado estáticamente de JavaScript, proporciona a los desarrolladores herramientas potentes para el procesamiento seguro y eficiente de documentos HTML. En este artículo, analizaremos las principales bibliotecas para el parseo de HTML en TypeScript, sus características, ventajas y ejemplos de uso.



¿Por qué es necesario el parseo de HTML en TypeScript?



TypeScript añade tipado estricto, lo que es especialmente útil al trabajar con estructuras HTML complejas. Esto permite:

  • Evitar errores en tiempo de ejecución relacionados con el acceso incorrecto a elementos del DOM
  • Mejorar el autocompletado en el IDE
  • Crear un código más legible y mantenible
  • Integrarse fácilmente con frameworks modernos (Angular, React, Vue)


Bibliotecas populares para el parseo de HTML



1. Cheerio

Cheerio es una biblioteca rápida, flexible y ligera que implementa un subconjunto de jQuery para el lado del servidor. Es ideal para el parseo de documentos HTML estáticos.



Instalación:

npm install cheerionpm install @types/cheerio -D


Ejemplo de uso:

import * as cheerio from 'cheerio';

const html = ` <div class="container"> <h1>Título</h1> <p class="content">Texto del párrafo</p> <ul> <li>Elemento 1</li> <li>Elemento 2</li> </ul> </div>`;

const $ = cheerio.load(html);

// Extraer el títuloconst title = $('h1').text();console.log(title); // "Título"

// Extraer todos los elementos de la listaconst items: string[] = [];$('li').each((index, element) => { items.push($(element).text());});console.log(items); // ["Elemento 1", "Elemento 2"]

// Búsqueda por claseconst content = $('.content').text();console.log(content); // "Texto del párrafo"


2. JSDOM

JSDOM es una implementación completa de las API DOM y HTML en Node.js. A diferencia de Cheerio, emula un entorno de navegador, lo que permite ejecutar código JavaScript dentro de una página HTML.



Instalación:

npm install jsdomnpm install @types/jsdom -D


Ejemplo de uso:

import { JSDOM } from 'jsdom';

const html = ` <!DOCTYPE html> <html> <body> <div id="app"> <span class="data">Valor 1</span> <span class="data">Valor 2</span> </div> </body> </html>`;

const dom = new JSDOM(html);const document = dom.window.document;

// Obtener elemento por IDconst app = document.getElementById('app');console.log(app?.textContent); // "Valor 1Valor 2"

// Usar querySelectorconst firstData = document.querySelector('.data');console.log(firstData?.textContent); // "Valor 1"

// Obtener todos los elementos por claseconst allData = document.querySelectorAll('.data');const values: string[] = [];allData.forEach(el => values.push(el.textContent || ''));console.log(values); // ["Valor 1", "Valor 2"]


3. Node-html-parser

Node-html-parser es un parser HTML rápido y simple, escrito en TypeScript. No requiere dependencias externas y es ideal para tareas donde el rendimiento es importante.



Instalación:

npm install node-html-parser


Ejemplo de uso:

import { parse } from 'node-html-parser';

const html = ` <table> <tr> <td>Celda 1</td> <td>Celda 2</td> </tr> <tr

Recommendations