Converter Extrair Texto HTML

HTML é uma linguagem de marcação popularmente utilizada em websites, aplicações web, etc. Os conteúdos em HTML são diferenciados por meio de diferentes tags. Você pode facilmente converter HTML em texto simples usando a linguagem C# enquanto ignora as tags de abertura e fechamento. Da mesma forma, pode haver algumas especificações de folhas de estilo em cascata, JavaScript ou qualquer outra seção do HTML conforme suas necessidades. Portanto, é como extrair texto de um documento HTML. Vamos percorrer a seção a seguir para obter informações detalhadas:

Conversor de HTML para Texto Simples em C#

Você pode converter HTML em Texto Simples com a API Aspose.HTML para .NET. Ele pode ser facilmente configurado em ambiente baseado em .NET Framework usando o seguinte comando de instalação NuGet:

PM> Install-Package Aspose.Html

Converter HTML em arquivo de texto usando INodeIterator em C#

Aspose.HTML para .NET API é baseado em DOM (Document Object Model) para que você possa iterar através de diferentes nós da API usando a interface INodeIterator. Da mesma forma, fornece o controle para definir um NodeFilter e substituir métodos para filtrar o conteúdo. Você pode ignorar o estilo, script ou qualquer outro elemento no arquivo HTML para selecionar apenas a string de texto dele. Abaixo estão as etapas para converter HTML em arquivo TXT simples usando C#:

  1. Ler arquivo HTML de entrada
  2. Inicialize a instância do iterador do nó
  3. Criar instância INodeIterator
  4. Verifique o filtro de estilo
  5. Ler o valor do nó em uma string
  6. Escrever conteúdo de texto de HTML como arquivo TXT

O código abaixo mostra como converter HTML para arquivo de texto simples usando C#:

String content = File.ReadAllText(dataDir + "Test2.html");

// Criar uma instância de documento HTML
using (var document = new HTMLDocument(content, ""))
{
    // A primeira maneira de reunir elementos de texto do documento
    // Inicialize a instância do iterador do nó
    Aspose.Html.Dom.Traversal.INodeIterator iterator = document.CreateNodeIterator(document, Aspose.Html.Dom.Traversal.Filters.NodeFilter.SHOW_TEXT, new StyleFilter());
    StringBuilder sb = new StringBuilder();
    Aspose.Html.Dom.Node node;
    while ((node = iterator.NextNode()) != null)
        sb.Append(node.NodeValue);
    Console.WriteLine(sb.ToString());

    File.WriteAllText(@"NodeIterator.txt", sb.ToString());
}


///<summary>
/// Representa um filtro de usuário criado para ignorar o conteúdo do elemento 'estilo' e 'script'.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //Se você quiser evitar algum elemento, escreva seu nome em letras maiúsculas
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

Extraia texto de HTML com diferentes abordagens usando C#

Aprendemos como converter HTML em texto usando INodeIterator. Da mesma forma, existem várias outras abordagens para atingir esses requisitos. Você pode criar um método personalizado para extrair texto ou trabalhar com a propriedade TextContent conforme explicado nas etapas abaixo:

  1. Carregar documento HTML de entrada
  2. Definir um método definido pelo usuário
  3. Verifique cada NodeType para ver se é um nó de elemento ou nó de texto
  4. Obtenha elementos de texto usando a propriedade TextContent
  5. Salvar arquivo TXT de saída

O trecho de código abaixo explica essas duas abordagens diferentes para converter HTML em texto simples em C#:

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// Criar uma instância de documento HTML
var document = new HTMLDocument(content, "");

// A segunda maneira de reunir elementos de texto do documento usando o método personalizado
text = GetContent(document.Body);

File.WriteAllText("Test.txt", text);

// A terceira maneira de reunir elementos de texto do documento usando a propriedade TextContent
text = document.Body.TextContent;

File.WriteAllText("Test.txt", text);



static string GetContent(Aspose.Html.Dom.Node node)
{
    StringBuilder sb = new StringBuilder();
    foreach (var n in node.ChildNodes)
    {
        if (n.NodeType == Aspose.Html.Dom.Node.ELEMENT_NODE)
            sb.Append(GetContent(n));
        else if (n.NodeType == Aspose.Html.Dom.Node.TEXT_NODE)
            sb.Append(n.NodeValue);
    }
    return sb.ToString();
}

Converter HTML da página da Web de URL em texto usando C#

Já abordamos a conversão de HTML para texto da página da Web offline, na qual é necessário que o arquivo HTML exista baixando-o no disco. Vamos avançar mais um passo, onde você nem precisa salvar o arquivo HTML no disco. Você pode converter diretamente uma página da Web especificando sua URL em um arquivo TXT usando C#. Por exemplo, vamos converter a página do produto do Aspose.HTML para .NET API em um arquivo TXT com as etapas abaixo:

  1. Inicialize o objeto HTMLDocument e especifique o URL
  2. Ler o conteúdo do texto do formato HTML
  3. Escreva o arquivo TXT com o texto extraído da página da web

O código abaixo mostra como converter HTML de página da Web de URL em texto usando C#:

// Inicializar o objeto HTMLDocument com URL
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// Ler o conteúdo do texto do formato HTML
String text = document.Body.TextContent;
            
// Escreva o arquivo TXT com o texto extraído
File.WriteAllText("Webpage.txt", text);

Conclusão

Neste artigo, discutimos como converter arquivos HTML em texto simples, extrair texto de HTML, bem como um URL de página da Web online para o formato de arquivo TXT usando C#. Você pode usar diferentes abordagens e sinta-se à vontade para entrar em contato conosco através do Fórum de suporte gratuito se precisar de mais assistência.

Veja também

Dica: Você pode estar interessado em um Conversor de Texto para GIF gratuito que permite gerar animações a partir de textos.