ToolPal
Líneas de código HTML en una pantalla oscura de editor de código

HTML a texto: eliminar etiquetas y obtener texto limpio rápidamente

📷 Florian Olivo / Pexels

HTML a texto: eliminar etiquetas y obtener texto limpio rápidamente

Aprende a eliminar etiquetas HTML y extraer texto plano limpio, decodificar entidades, preservar saltos de línea y cuándo usar conversión HTML-a-texto frente a HTML-a-Markdown.

12 de abril de 202612 min de lectura

Hay una frustración muy específica que viene de copiar texto de una página web y que se pegue como una muralla de etiquetas <p> y caracteres &nbsp;. O abrir una plantilla de email HTML en un editor de texto para buscar una cita y encontrarse una sopa de <td> y <span style="color:#333333"> alrededor de cada palabra.

Eso es exactamente el problema que resuelve un conversor de HTML a texto. Parece sencillo — quitar las etiquetas, mostrar el texto — pero hay suficientes pequeñas trampas (entidades, saltos de línea, normalización de espacios en blanco) para que hacerlo bien requiera más que un simple reemplazo con regex. Veamos qué ocurre realmente bajo el capó, cuándo necesitamos esta herramienta y dónde se queda corta.

Qué hace realmente un conversor de HTML a texto

A nivel superficial, convertir HTML a texto significa eliminar todo lo que está entre corchetes angulares < >. Pero eso es solo el principio.

La eliminación de etiquetas es la parte obvia. Cada elemento — <div>, <p>, <span>, <a>, <img>, y todos los demás — se elimina. Lo que queda es el contenido que había entre las etiquetas de apertura y cierre.

La decodificación de entidades es donde muchas implementaciones ingenuas fallan. HTML usa entidades para representar caracteres que de otro modo romperían el marcado. El símbolo & se convierte en &amp;. El signo menor que < se convierte en &lt;. El espacio de no separación se convierte en &nbsp;. Las comillas tipográficas suelen aparecer como &#8220; y &#8221;. Si tu conversor solo elimina etiquetas sin decodificar entidades, tu "texto plano" estará lleno de estos códigos en bruto. No exactamente legible.

Un buen conversor decodifica el conjunto completo de entidades nombradas (&amp;, &lt;, &gt;, &quot;, &apos;, &nbsp; y los cientos de otras como &mdash;, &copy;, &reg;) más las entidades numéricas tanto en decimal (&#160;) como en hexadecimal (&#xA0;).

La preservación de saltos de línea es el tercer aspecto. Las reglas de espaciado de HTML son diferentes a las del texto plano — los espacios múltiples se colapsan a uno, y los saltos de línea en el código fuente no significan nada visualmente. La estructura que ves en un navegador viene de los elementos de bloque: <p>, <div>, <h1> a <h6>, <li>, <blockquote>, <br>, <hr>, etc. Un conversor bien diseñado inserta saltos de línea o líneas en blanco al encontrar estos elementos, para que el resultado tenga cierta estructura de párrafo en lugar de que todo se junte en una larga línea.

Ve a /tools/html-to-text, pega tu HTML, y la herramienta gestiona automáticamente estos tres aspectos.

Casos de uso reales

Veamos las situaciones en las que realmente uso este tipo de herramienta, porque son más variadas de lo que podrías esperar.

Limpiar el HTML de emails

Las plantillas de email de marketing modernas son notoriamente verbosas en HTML. Cuando un compañero te reenvía un email pidiéndote que cites algo de él, y la única versión que tienes es el archivo .eml bruto o un pegado confuso desde Outlook, terminas con contenido como:

<td class="mcnTextContent" style="padding-top:0;padding-right:18px;padding-bottom:9px;padding-left:18px;">
  <p>Nos complace anunciar nuestra hoja de ruta de producto para el Q2&hellip;</p>
</td>

Pega eso en el conversor, y obtienes:

Nos complace anunciar nuestra hoja de ruta de producto para el Q2…

Eso es la única parte que realmente querías.

Preparar versiones de email en texto plano

Si envías campañas de email en HTML, también deberías enviar una versión de respaldo en texto plano — mejora la entregabilidad y sirve a los destinatarios cuyos clientes de correo no renderizan HTML. Escribir la versión en texto plano a mano desde una plantilla diseñada es tedioso. Pasar el HTML por un conversor te da un borrador de trabajo que luego puedes limpiar añadiendo saltos de línea reales, eliminando enlaces de navegación redundantes, etc.

No será perfecto — los menús de navegación y las cabeceras con muchas imágenes suelen producir resultados poco elegantes — pero es un punto de partida mucho mejor que un archivo en blanco.

Web scraping y extracción de contenido

Cuando haces scraping de una página web, normalmente obtienes el HTML completo, que incluye navegación, barras laterales, anuncios, pies de página y scripts junto al contenido real. Después de apuntar al contenedor de contenido principal, a menudo aún tienes HTML. Pasarlo por un conversor te da el texto legible.

Para tareas puntuales de scraping — obtener una descripción de producto, extraer el texto de un artículo de blog, copiar una receta — pegar el HTML en la herramienta es genuinamente más rápido que escribir un parser. Para tareas sistemáticas o a gran escala, querrás herramientas del lado del servidor, pero para una tarea rápida es difícil de superar.

Poblar bases de datos o índices de búsqueda

Si almacenas contenido como HTML (por ejemplo, en un CMS o un campo de editor de texto enriquecido) pero necesitas texto plano para indexación de búsqueda de texto completo, entrada en modelos de IA, o visualización en un contexto que no renderiza HTML, necesitas una extracción limpia. Convertir a texto plano te da una versión segura para indexar, comparar o enviar a sistemas intermedios.

Pegar en contextos de texto plano

Google Docs, Notion, editores de texto plano, plantillas de SMS, salida de terminal — hay muchos lugares que aceptan texto pero no HTML. Copiar texto de un navegador suele arrastrar formato HTML oculto. Convertir primero y pegar desde la salida en texto plano evita ese problema.

Qué son las entidades HTML y por qué importan

Esto merece una explicación más detallada porque confunde a mucha gente.

La especificación HTML define un conjunto de referencias de caracteres nombrados — cadenas como &amp;, &lt;, &gt;, &quot; — que representan caracteres especiales. La razón de su existencia: HTML es en sí mismo un formato de texto que usa <, > y & como caracteres de sintaxis. Si quieres mostrar un < literal en un navegador, tienes que escribir &lt; en el HTML, de lo contrario el navegador cree que estás abriendo una nueva etiqueta.

Cuando eliminas las etiquetas HTML sin decodificar las entidades, esto es lo que obtienes:

HTML de entrada:
<p>El precio es 10 € &amp; el envío es gratis. Ver la página &lt;detalles&gt;.</p>

Después de solo eliminar etiquetas:
El precio es 10 € &amp; el envío es gratis. Ver la página &lt;detalles&gt;.

Después de eliminar etiquetas + decodificar entidades:
El precio es 10 € & el envío es gratis. Ver la página <detalles>.

La segunda versión es lo que los lectores verían en un navegador. Eso es lo que quieres.

Algunas entidades comunes que encontrarás:

  • &amp;&
  • &lt;<
  • &gt;>
  • &nbsp; → espacio de no separación (a menudo aparece como espacio normal)
  • &mdash; (raya)
  • &hellip; (puntos suspensivos)
  • &copy;©
  • &#8220; y &#8221;" y " (comillas tipográficas)

Un buen conversor maneja todo esto de forma transparente.

HTML a texto vs HTML a Markdown

Ambos convierten HTML a un formato diferente, pero sirven para propósitos distintos.

Usa HTML a texto cuando:

  • Necesitas contenido verdaderamente plano y sin formato
  • Estás enviando la salida a un sistema que no entiende Markdown
  • Estás creando versiones de email en texto plano
  • Estás haciendo análisis de texto o procesamiento de lenguaje natural donde el marcado es solo ruido
  • Necesitas sanear HTML generado por usuarios para almacenamiento o comparación seguros

Usa HTML a Markdown cuando:

  • Quieres preservar la estructura del documento (encabezados, negrita, cursiva, enlaces, listas)
  • Estás migrando contenido de un CMS HTML a un sistema basado en Markdown
  • Planeas volver a renderizar el contenido en algún lugar que soporte Markdown
  • Quieres algo que un humano todavía pueda editar cómodamente

La diferencia clave: HTML a texto pierde toda estructura de formato. HTML a Markdown mantiene la estructura en una forma legible y editable por humanos. Si estás migrando un blog de WordPress a Astro o Hugo, la conversión a Markdown es lo que quieres. Si estás extrayendo texto para un motor de búsqueda o un modelo de lenguaje, el texto plano probablemente sea más limpio.

El comportamiento de los saltos de línea y qué esperar

Una de las partes más complicadas de la conversión HTML a texto es el manejo de los espacios en blanco.

En HTML, los saltos de línea en el código fuente se tratan como espacios, y los espacios múltiples se colapsan a uno. Los saltos de línea visuales que ves en un navegador vienen exclusivamente de los elementos de bloque y del CSS. Cuando eliminas las etiquetas, hay que decidir qué hacer en cada límite de elemento.

Un conjunto razonable de reglas:

  • <br> → salto de línea simple
  • <p>, <div>, <h1> a <h6> → doble salto de línea (línea en blanco antes y después)
  • <li> → salto de línea con un prefijo de viñeta o número
  • <hr> → una línea de guiones o simplemente una línea en blanco
  • Elementos en línea (<span>, <a>, <strong>, <em>) → solo su contenido de texto, sin espaciado adicional

La herramienta HTML a texto aplica reglas como estas para que el resultado sea legible y razonablemente estructurado, no una sola línea masiva.

Limitaciones: dónde esta herramienta se queda corta

Quiero ser claro sobre lo que la conversión HTML a texto no puede hacer bien.

Las imágenes desaparecen por completo. No hay equivalente en texto plano para una imagen. La etiqueta <img> se elimina junto con su src, alt y todo lo demás. Si una imagen portaba información importante — un gráfico, un diagrama, un logotipo — esa información se pierde. Si necesitas que se preserve el texto alternativo, considera convertir a Markdown (donde las imágenes se convierten en ![texto alt](url)).

Los diseños de tablas complejas se aplanan mal. Las tablas HTML usadas para maquetación — las viejas plantillas de email basadas en <table> — suelen producir resultados difíciles de leer como texto plano. Las celdas se concatenan en orden de lectura, que puede o no coincidir con lo que un humano esperaría.

El contenido oculto por CSS sigue estando incluido. Los elementos con display: none o visibility: hidden siguen presentes en el código fuente HTML, lo que significa que su contenido de texto aparece en la salida de texto plano. Si una página tiene un menú móvil oculto, un encabezado duplicado oculto o texto de tooltip oculto, todo eso aparece.

El contenido renderizado por JavaScript no estará. Si pegas el código fuente HTML bruto de una página que carga su contenido dinámicamente via JavaScript, el conversor solo ve lo que está en el HTML estático — que podría ser muy poco. Para páginas renderizadas por JS, necesitarías un navegador headless para obtener primero la salida renderizada.

Sin interpretación semántica. El conversor no sabe que <nav> es navegación que quizás quieras omitir, o que <aside> es una barra lateral que probablemente no quieras en tu contenido extraído. Trata todos los elementos por igual.

Para web scraping en producción, te sirven mejor BeautifulSoup (Python) o cheerio (Node.js), ya que te permiten apuntar a elementos específicos con selectores antes de extraer el texto. La herramienta HTML a texto es ideal para conversiones rápidas y puntuales donde esas compensaciones son aceptables.

Herramientas relacionadas

El conversor de HTML a texto encaja naturalmente junto a unas pocas otras herramientas:

  • Codificador HTML: Lo contrario de la decodificación de entidades — codifica caracteres especiales en entidades HTML. Útil cuando necesitas incrustar texto de forma segura dentro de HTML.
  • HTML a Markdown: Cuando necesitas preservar la estructura en lugar de eliminarla. Mejor para migración de contenido.
  • Minificador HTML: Cuando quieres mantener el HTML pero reducir el tamaño del archivo eliminando espacios en blanco, comentarios y atributos redundantes. Objetivo diferente — no estás extrayendo contenido, estás comprimiendo marcado.

Un ejemplo de flujo de trabajo rápido

Aquí un escenario realista: has hecho scraping de una página de descripción de producto y tienes el HTML bruto del elemento <main>. Quieres el texto plano para una hoja de cálculo de comparación.

  1. Copia el HTML desde tu herramienta de scraping o las DevTools del navegador.
  2. Pégalo en /tools/html-to-text.
  3. El resultado aparece con las etiquetas eliminadas, las entidades decodificadas y los elementos de bloque convertidos en saltos de línea.
  4. Copia el resultado en tu hoja de cálculo.

Tiempo total: unos 15 segundos. Hacerlo con una regex en la consola del navegador tomaría más tiempo y casi seguro destrozaría las entidades.

Conclusión

La conversión de HTML a texto es una de esas tareas que parece trivial hasta que realmente la intentas — y entonces te das cuenta de que hay tres o cuatro capas de complejidad que hay que manejar correctamente para obtener una salida utilizable. Las etiquetas son la parte obvia; las entidades y la normalización de espacios en blanco son lo que confunde a la gente.

La herramienta HTML a texto gestiona todo eso en un solo paso. Para extracciones rápidas y puntuales — desde emails, páginas scrapeadas, exportaciones de CMS, o cualquier lugar donde tengas un bloque de HTML — es el camino más rápido del marcado al texto plano.

Si necesitas preservar el formato en lugar de eliminarlo, echa un vistazo a HTML a Markdown. Y si trabajas directamente con entidades HTML, el Codificador HTML y el Minificador HTML completan el conjunto de herramientas.

Preguntas Frecuentes

Compartir

XLinkedIn

Publicaciones relacionadas