Text/Clean

Como transformar uma página web ou código HTML em texto puro

Como tirar as tags de um código HTML e obter texto puro com parágrafos e quebras: remover script e style, decodificar & e converter tabelas.

Às vezes você só tem o código HTML em mãos — da visualização HTML de um editor de blog, de um modelo de e-mail ou de um arquivo exportado de um CMS — e quer extrair apenas o texto. Apagando as tags à mão, é fácil sobrarem entidades como & e trechos de script.

Pipeline básico

A receita pronta segue esta ordem.

  1. Remover tags HTML — apaga as tags, transforma os limites de bloco em quebras de linha e as entidades em caracteres.
  2. Limpar caracteres invisíveis e aspas — converte em caracteres comuns o NBSP (U+00A0) vindo de   e as aspas curvas.
  3. Remover espaços nas pontas — apaga os espaços que ficaram no início das linhas por causa do recuo do código.
  4. Remover linhas vazias — com 'Reduzir linhas vazias seguidas a uma', deixa uma única linha entre parágrafos.
  5. Reduzir espaços e tabulações repetidos — reduz a um os espaços repetidos dentro das linhas.
ReceitasHTML → texto puro
  1. Remover tags HTML
  2. Limpar caracteres invisíveis e aspas
  3. Remover espaços nas pontas
  4. Remover linhas vazias
  5. Reduzir espaços e tabulações repetidos
Abrir a ferramenta com esta receita

O que a remoção de tags faz

  • Comentários e código executável: comentários <!-- --> e os elementos <script>, <style>, <noscript> e <template> são apagados com o conteúdo. Se só as tags fossem apagadas, o código JavaScript ou CSS ficaria como se fosse texto.
  • Tags de bloco e quebras: com 'Tags de bloco e <br> viram quebra de linha' ativado, a linha é quebrada em <br> e nos limites de elementos de bloco como p, div, h1 a h6, li e tr. Como tanto a tag de abertura quanto a de fechamento viram quebra, surgem linhas vazias; três ou mais linhas vazias seguidas são reduzidas a duas.
  • Tabelas: o fim das células (</td>, </th>) vira tabulação. Ao colar o resultado numa planilha, as colunas ficam separadas.
  • Entidades: com 'Decodificar entidades como &amp;' ativado, as entidades nomeadas mais comuns, como &amp; &lt; &gt; &quot; &nbsp; &hellip;, e as numéricas, como &#39; &#x27;, viram os caracteres reais. Entidades nomeadas que a ferramenta não conhece ficam como no original.
<h2>Aviso</h2>
<p>Manutenção&nbsp;programada desta semana.<br>Dúvidas? Use o fórum de P&amp;R.</p>
<ul><li>Seg: servidor</li><li>Qua: banco de dados</li></ul>
<script>track();</script>

O código acima fica assim:

Aviso

Manutenção programada desta semana.
Dúvidas? Use o fórum de P&R.

Seg: servidor

Qua: banco de dados

Se não quiser linhas vazias entre os itens da lista, escolha 'Remover todas as linhas vazias' em vez de reduzir as linhas vazias seguidas. Nesse caso, porém, as linhas vazias entre parágrafos também desaparecem.

Para preservar a estrutura das tabelas

A última etapa da receita, a redução de espaços e tabulações repetidos, vem com 'Juntar tabulações também como espaço' ativado e transforma as tabulações da tabela em espaços. A remoção de espaços nas pontas também apaga tabulações no início e no fim das linhas. Para usar a tabela como dados separados por tabulação, desative 'Juntar tabulações também como espaço' e desative a etapa de remoção de espaços nas pontas.

Diferença em relação a copiar da tela do navegador

Selecionar e copiar uma página na tela e limpar o código HTML com esta ferramenta dão resultados diferentes.

  • Esta ferramenta não interpreta CSS. O texto de elementos ocultos com display:none também fica no resultado.
  • O texto alternativo de imagens (alt) e os endereços dos links (href) desaparecem junto com as tags. Se precisar dos links, anote-os no original antes de apagar as tags.
  • Se o código HTML tiver frases longas quebradas em várias linhas, essas quebras permanecem. Nesse caso ajuda acrescentar depois Restaurar quebras de linha de PDF, que junta as linhas dentro dos parágrafos.
  • Nos limites de elementos que não são de bloco, como <span>, não entra nem quebra nem espaço; elementos que estavam colados no original saem com o texto grudado.

Caracteres ocultos em modelos de e-mail

O HTML de newsletters às vezes traz dezenas de caracteres invisíveis como &zwnj; ou &#8203; para controlar o texto de pré-visualização na caixa de entrada. A remoção de tags converte essas entidades em não-junção de largura zero (U+200C) e espaço de largura zero (U+200B), e a segunda etapa da receita os apaga. Se você desativar a etapa de limpeza de caracteres invisíveis e aspas, eles ficam no resultado, e um texto aparentemente normal pode falhar em buscas e comparações.

Para recolocar marcadores nos itens da lista, acrescente depois da receita a operação de adicionar texto no início e no fim e informe - no início. Como ele é aplicado a todas as linhas, porém, não serve para resultados que misturam títulos e parágrafos.

Atenção

  • As tags são apagadas com base no formato < seguido de letra e fechado por >. Em códigos raros com > dentro do valor de um atributo, alguns trechos podem sobrar.
  • As entidades são decodificadas depois que as tags são apagadas, então &lt;b&gt; no original não é tratado como tag e fica como o texto <b>. É o comportamento esperado.

Checklist

  • Cole o código inteiro e aplique primeiro a receita.
  • Se for usar tabelas, desative as etapas que apagam tabulações.
  • Se precisar dos endereços dos links, guarde-os antes de apagar as tags.

Última atualização: 2026-09-23