HTML para Texto
Use esta skill quando você tiver HTML – uma página raspada, o corpo de uma newsletter, o conteúdo de uma entrada de feed – e quiser um texto simples, limpo e legível sem adicionar beautifulsoup4 ou lxml. Uma pequena subclasse de HTMLParser remove blocos <script>/<style>, converte elementos de bloco em novas linhas e colapsa espaços em branco, exatamente o formato ideal antes de enviar conteúdo a um LLM (menos tokens) ou a um índice de busca.
Quando invocar
- O usuário diz: "extraia o texto deste HTML", "limpe esta página raspada", "remova as tags antes de resumir", "converta este HTML de e-mail em texto".
- O HTML está prestes a ser alimentado a um modelo ou a um resumo e a marcação é apenas ruído.
Quando NÃO invocar
- Você precisa manter a estrutura (tabelas, links como Markdown) – use um conversor HTML-para-Markdown adequado.
- A página é renderizada por JavaScript – busque-a primeiro com um navegador headless e depois converta.
Exemplo concreto
Entrada do usuário:
Converta este HTML de artigo em texto simples para que eu possa resumi-lo com menos tokens.
Saída:
# Copie assets/htmltext.py para seu projeto e use:
from htmltext import html_to_text
text = html_to_text(article_html)
summary = call_llm(f"Resuma:\n{text}")
Blocos <script> e <style> são completamente descartados, tags de bloco se tornam quebras de linha e sequências de espaços/linhas em branco são colapsadas, fazendo com que a saída leia como prosa.
Padrão a aplicar
- Crie uma subclasse de
html.parser.HTMLParsercomconvert_charrefs=Truepara que as entidades sejam decodificadas automaticamente. - Monitore uma profundidade de ignorância para
script/style/headpara que o texto desses elementos nunca vaze para a saída. - Emita novas linhas ao redor de tags de bloco e depois colapse espaços em branco intra-linha e múltiplas linhas em branco.
- Mantenha a função pura (string de entrada, string de saída) para que seja trivial de testar unitariamente.
Referência: assets/htmltext.py.
Fonte
Destilado dos pipelines de raspagem e resumo do autor. v1.0.0. Veja também: [[rss-feed-reader]], [[gemini-cost-tracker]], [[pipeline-orchestrator]].
→ Construa o robô completo com o Trawlkit.