Eu estou procurando uma maneira de converter uma pasta cheia de arquivos HTML para texto simples. O que eu quero é que os arquivos de texto sejam o máximo possível, como o que eu teria se eu tivesse selecionado todo o texto em um navegador da Web, copiado e colado o texto em um arquivo de texto simples.
NÃO, REALMENTE, QUERO TEXTO SIMPLES NÃO-FORMATO. Todas as soluções que estou encontrando produzem Markdown ou algo parecido, ou tentam preservar o layout, ou usam asteriscos e sublinhados para indicar a formatação do texto, ou preservam o conteúdo dos scripts no arquivo de saída, ou alguma coisa inteligente .
Tudo o que quero são as palavras escritas pelo autor na ordem em que o autor as escreveu. Eu nem me importo se o processamento converte todos os itens da lista em uma lista em um único parágrafo, ou até mesmo reduz o documento inteiro em um único parágrafo. Tudo isso é muito melhor do que dar-me qualquer coisa diferente da linguagem real contida no documento.
Eu adoraria um aplicativo de terminal ou script Python, mas vou pegar qualquer coisa que eu possa conseguir.
<
e>
. Eu não seised
, mas tenho certeza que poderia fazer isso.Respostas:
html2text é um script Python que converte uma página de HTML em texto estruturado equivalente a Markdown. O html2text pode ser baixado e executado em qualquer sistema operacional que tenha o Python instalado. O programa html2text está nos repositórios de muitas distribuições do Linux e pode ser executado a partir da linha de comando da seguinte forma:
Esse comando não apenas converte o arquivo html original em texto, mas também faz um trabalho muito bom de facilitar a leitura da saída de texto simples. Os títulos parecem cabeçalhos, as listas parecem listas, etc.
fonte
-style compact
opção em vez disso e se livrar dos recortes feitos com o caractere de espaço também.Usar
w3m -dump <page.html>
.Ele lhe dará a representação de texto do arquivo html.
Na página man:
Embora seja dito
formatted
, a saída é apenas texto simples.fonte
lynx
também suporta-dump
.Unix.com: Como remover apenas tags HTML em um arquivo fornece:
sed -n '/^$/!{s/<[^>]*>//g;p;}' filename
ou
html2text
CommandLineFu: remover todas as tags HTML mostra outro
sed
linha ouawk
.Eu acredito que esta é uma operação um pouco comum fornecida por vários programas, e que o nome mais comum para essa tarefa é "remover" o HTML. Um rápido Pesquisa do Google para: Linux strip html tags mostra várias soluções, incluindo PHP: tags de strip .
fonte