추출 HTML 텍스트 변환

HTML은 웹사이트, 웹 어플리케이션 등에서 많이 사용되는 마크업 언어입니다. HTML의 내용은 서로 다른 태그를 사용하여 구분됩니다. 여는 태그와 닫는 태그를 무시하면서 C# 언어를 사용하여 HTML을 일반 텍스트로 쉽게 변환할 수 있습니다. 마찬가지로, CSS 스타일 시트 사양, JavaScript 또는 요구 사항에 따라 HTML의 다른 섹션이 있을 수 있습니다. 따라서 HTML 문서에서 텍스트를 추출하는 것과 같습니다. 자세한 내용은 다음 섹션을 살펴보겠습니다.

C#에서 HTML을 일반 텍스트로 변환

Aspose.HTML for .NET API를 사용하여 HTML을 일반 텍스트로 변환할 수 있습니다. 다음 NuGet 설치 명령을 사용하여 .NET Framework 기반 환경에서 쉽게 구성할 수 있습니다.

PM> Install-Package Aspose.Html

C#에서 INodeIterator를 사용하여 HTML을 텍스트 파일로 변환

.NET API용 Aspose.HTML은 DOM(Document Object Model)을 기반으로 하므로 INodeIterator 인터페이스를 사용하여 API의 다른 노드를 반복할 수 있습니다. 마찬가지로 NodeFilter를 정의하고 콘텐츠 필터링을 위한 메서드를 재정의하는 컨트롤을 제공합니다. HTML 파일의 스타일, 스크립트 또는 기타 요소를 무시하여 텍스트 문자열만 선택할 수 있습니다. 다음은 C#을 사용하여 HTML을 일반 TXT 파일로 변환하는 단계입니다.

  1. 입력 HTML 파일 읽기
  2. 노드 반복기의 인스턴스 초기화
  3. INodeIterator 인스턴스 생성
  4. 스타일 필터 확인
  5. 문자열에서 노드 값 읽기
  6. HTML의 텍스트 내용을 TXT 파일로 쓰기

아래 코드는 C#을 사용하여 HTML을 일반 텍스트 파일로 변환하는 방법을 보여줍니다.

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

// HTML 문서의 인스턴스 생성
using (var document = new HTMLDocument(content, ""))
{
    // 문서에서 텍스트 요소를 수집하는 첫 번째 방법
    // 노드 반복기의 인스턴스 초기화
    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>
/// 'style' 및 'script' 요소의 내용을 무시하기 위해 생성된 사용자 필터를 나타냅니다.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //요소를 피하려면 이름을 대문자로 작성하십시오.
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

C#을 사용하여 다양한 접근 방식으로 HTML에서 텍스트 추출

INodeIterator를 사용하여 HTML을 텍스트로 변환하는 방법을 배웠습니다. 마찬가지로 이러한 요구 사항을 달성하기 위한 몇 가지 다른 접근 방식이 있습니다. 텍스트를 추출하는 사용자 지정 메서드를 만들거나 아래 단계에 설명된 대로 TextContent 속성으로 작업할 수 있습니다.

  1. 입력 HTML 문서 로드
  2. 사용자 정의 방법 정의
  3. NodeType이 요소 노드인지 텍스트 노드인지 확인합니다.
  4. TextContent 속성을 사용하여 텍스트 요소 가져오기
  5. 출력 TXT 파일 저장

아래 코드 조각은 C#에서 HTML을 일반 텍스트로 변환하는 두 가지 다른 접근 방식을 설명합니다.

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// HTML 문서의 인스턴스 생성
var document = new HTMLDocument(content, "");

// 사용자 정의 방법을 사용하여 문서에서 텍스트 요소를 수집하는 두 번째 방법
text = GetContent(document.Body);

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

// 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();
}

C#을 사용하여 URL 웹 페이지 HTML을 텍스트로 변환

디스크에 다운로드하여 HTML 파일이 존재해야 하는 오프라인 웹 페이지 HTML을 텍스트로 변환하는 방법은 이미 다루었습니다. HTML 파일을 디스크에 저장할 필요조차 없는 한 단계 더 나아가겠습니다. C#을 사용하여 URL을 지정하여 웹 페이지를 TXT 파일로 직접 변환할 수 있습니다. 예를 들어 Aspose.HTML for .NET API의 제품 페이지를 아래 단계에 따라 TXT 파일로 변환해 보겠습니다.

  1. HTMLDocument 객체 초기화 및 URL 지정
  2. HTML 형식의 텍스트 내용 읽기
  3. 웹 페이지에서 추출한 텍스트로 TXT 파일 작성

아래 코드는 C#을 사용하여 URL 웹 페이지 HTML을 텍스트로 변환하는 방법을 보여줍니다.

// URL로 HTMLDocument 객체 초기화
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// HTML 형식의 텍스트 내용 읽기
String text = document.Body.TextContent;
            
// 추출된 텍스트로 TXT 파일 쓰기
File.WriteAllText("Webpage.txt", text);

결론

이 기사에서는 HTML 파일을 일반 텍스트로 변환하고 HTML에서 텍스트를 추출하는 방법과 C#을 사용하여 온라인 웹 페이지 URL을 TXT 파일 형식으로 변환하는 방법에 대해 설명했습니다. 다양한 접근 방식을 사용할 수 있으며 추가 지원이 필요한 경우 무료 지원 포럼을 통해 언제든지 문의하십시오.

또한보십시오

팁: 텍스트에서 애니메이션을 생성할 수 있는 무료 텍스트를 GIF로 변환에 관심이 있을 수 있습니다.