HTML에서 데이터와 리소스 추출

Aspose.HTML for Java 는 파일, URL, 문자열 또는 스트림에서 HTML을 HTMLDocument로 로드합니다. Java 애플리케이션은 DOM을 검사하고, 요소를 선택하고, 텍스트와 속성을 읽고, 상대 URL을 해석한 뒤 필요한 값이나 연결된 리소스를 저장할 수 있습니다.

필요한 정보가 문서 구조에 포함되어 있으면 DOM 메서드, CSS 선택자 또는 XPath 표현식을 사용합니다. 요소가 이미지, SVG 파일, 스타일시트 또는 다른 리소스를 가리키는 경우 해석된 URL과 네트워크 서비스를 사용하여 해당 바이트를 다운로드합니다. 이 방식은 HTML 분석과 리소스 가져오기를 분리하고 애플리케이션에 필요한 데이터만 추출하도록 합니다.


Java 데이터 추출 작업 선택

가져올 콘텐츠 또는 리소스 유형에 맞는 예제를 선택하세요.

웹사이트 이미지 추출

이미지 요소를 찾고 상대 소스 URL을 절대 URL로 해석한 뒤 참조된 이미지 파일을 저장합니다.

웹사이트 SVG 추출

인라인 SVG 마크업을 저장하고 HTML 페이지에서 참조하는 외부 SVG 리소스를 다운로드합니다.

URL에서 파일 다운로드

알려진 리소스 URL을 요청하고 응답을 확인한 뒤 반환된 바이트를 로컬 파일에 씁니다.


Java에서 HTML 링크 추출

이 예제는 HTML 페이지를 로드하고 각 링크의 href 속성을 읽은 다음 문서 URL을 기준으로 상대 참조를 해석하여 중복되지 않는 HTTP 및 HTTPS 링크를 output/links.txt에 씁니다. 같은 선택 방식은 텍스트, 메타데이터, 양식 값 또는 리소스 속성을 추출하는 데에도 사용할 수 있습니다.

Java에서 HTML 링크 추출

Path outputPath = Paths.get("output", "links.txt");
Files.createDirectories(outputPath.getParent());

try (HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/java/")) {
    HTMLCollection anchors = document.getElementsByTagName("a");
    Set<String> links = new LinkedHashSet<>();
    Iterator<Element> iterator = anchors.iterator();

    while (iterator.hasNext()) {
        Element anchor = iterator.next();
        String href = anchor.getAttribute("href");
        if (href.isEmpty()) {
            continue;
        }

        Url linkUrl = new Url(href, document.getBaseURI());
        String protocol = linkUrl.getProtocol();
        if ("http:".equals(protocol) || "https:".equals(protocol)) {
            links.add(linkUrl.getHref());
        }
    }

    Files.write(outputPath, links, StandardCharsets.UTF_8);
}

HTML에서 링크를 추출하는 단계

  1. HTMLDocument 클래스로 원본을 로드합니다.
  2. getElementsByTagName("a")로 링크 요소를 선택합니다.
  3. 각 href 속성을 읽고 빈 값은 제외합니다.
  4. Url 클래스와 문서의 기본 URI를 사용하여 상대 참조를 절대 URL로 해석합니다.
  5. HTTP 및 HTTPS 링크만 유지하고 중복을 제거한 뒤 컬렉션을 텍스트 파일에 저장합니다.

DOM, CSS 선택자 또는 XPath로 HTML 데이터 찾기

원본 문서의 구조에 맞는 선택 방법을 사용하세요.

  • DOM 컬렉션 – 알려진 태그를 가진 모든 요소가 필요하면 getElementsByTagName()을 사용합니다.
  • CSS 선택자 – 첫 번째 일치 요소에는 querySelector()를, CSS 선택자와 일치하는 모든 요소에는 querySelectorAll()을 사용합니다.
  • XPath – 계층 구조, 속성 또는 텍스트 조건에 따라 선택해야 하고 CSS 선택자로 표현하기 어려운 경우 XPath 표현식을 사용합니다.
  • 리소스 URL – src 또는 href와 같은 속성을 읽고 문서의 기본 URI를 기준으로 해석한 뒤 애플리케이션에 필요한 파일만 요청합니다.

DOM, CSS 선택자 및 XPath 예제는 HTML Navigation 을, 리소스 중심 예제는 Data Extraction 문서를 참조하세요.


HTML 데이터 추출 FAQ

1. Aspose.HTML for Java로 전체 웹페이지를 저장하지 않고 필요한 데이터만 추출할 수 있나요?

예. 원본을 HTMLDocument로 로드하고 필요한 노드만 선택한 뒤 텍스트, 속성 또는 참조된 리소스를 저장합니다. 페이지 전체의 사본을 저장할 필요가 없습니다.

2. Java에서 특정 HTML 요소만 추출하려면 어떻게 해야 하나요?

알려진 태그에는 getElementsByTagName()을, CSS 기반 일치에는 querySelector() 또는 querySelectorAll()을 사용합니다. 문서 계층 구조, 속성 또는 텍스트 조건에 따라 선택해야 하면 XPath를 사용합니다.

3. Aspose.HTML for Java로 HTML 테이블의 행과 셀을 추출할 수 있나요?

예. DOM에서 table, tr, th, td 요소를 선택한 뒤 해당 텍스트와 속성을 Java 애플리케이션에 필요한 데이터 구조로 매핑합니다.

4. Aspose.HTML for Java를 데이터 추출에 무료로 사용할 수 있나요?

Aspose.HTML for Java는 상용 라이브러리입니다. 구매 전에 평가판 을 다운로드하고 임시 라이선스 를 요청하여 평가 모드 제한 없이 데이터 추출을 테스트할 수 있습니다.


Aspose.HTML for Java 설치

Aspose 공식 리포지토리에서 Aspose.HTML for Java를 추가합니다. ASPOSE_HTML_VERSION을 Aspose.HTML for Java releases 페이지에 표시된 정확한 버전으로 바꾼 다음, 프로젝트를 다시 로드하거나 빌드하여 종속성을 확인합니다.

Maven 프로젝트에 리포지토리와 종속성을 추가합니다.

Maven – pom.xml

<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <url>https://releases.aspose.com/java/repo/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-html</artifactId>
        <version>ASPOSE_HTML_VERSION</version>
    </dependency>
</dependencies>

Gradle 프로젝트에 리포지토리와 종속성을 추가합니다.

Gradle – build.gradle

repositories {
    maven {
        url = uri('https://releases.aspose.com/java/repo/')
    }
}
dependencies {
    implementation 'com.aspose:aspose-html:ASPOSE_HTML_VERSION'
}

선택한 릴리스와 호환되는 JDK를 사용하세요. JAR 수동 설치, Kotlin DSL, 업데이트 및 종속성 문제 해결은 Install Aspose.HTML for Java 를 참조하세요.

Aspose.HTML for Java 관련 작업

HTML 문서 생성, 변환, 병합 및 처리에 관한 Java 가이드를 계속 살펴보세요.