[java] Jsoup을 사용하여 웹페이지 응답 데이터 인코딩하기

웹 크롤링을 할 때, 때로는 웹페이지의 응답 데이터가 올바른 인코딩으로 되어있지 않을 수 있습니다. 이럴 때 Jsoup을 사용하여 웹페이지의 응답 데이터를 올바른 인코딩으로 변환할 수 있습니다.

Jsoup 라이브러리 추가하기

먼저, Jsoup을 사용하기 위해 프로젝트에 Jsoup 라이브러리를 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가하세요:

<dependencies>
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.14.2</version>
    </dependency>
</dependencies>

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가하세요:

dependencies {
    implementation 'org.jsoup:jsoup:1.14.2'
}

웹페이지 응답 데이터 인코딩 변경하기

다음은 Jsoup을 사용하여 웹페이지 응답 데이터의 인코딩을 변경하는 예제 코드입니다.

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.safety.Whitelist;

import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class WebpageEncodingExample {

    public static void main(String[] args) {
        try {
            // 웹페이지 URL
            String url = "https://example.com";

            // Jsoup을 사용하여 웹페이지 응답 데이터 가져오기
            Document document = Jsoup.connect(url).get();

            // 웹페이지 응답 데이터의 charset 가져오기
            String charset = document.charset().name();

            // 웹페이지 응답 데이터 인코딩 변경하기
            String encodedHtml = new String(document.html().getBytes(charset), StandardCharsets.UTF_8);

            // 변경된 인코딩으로 Jsoup Document 생성하기
            Document encodedDocument = Jsoup.parse(encodedHtml);

            // 인코딩된 웹페이지 출력하기
            System.out.println(encodedDocument.html());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서는 Jsoup을 사용하여 웹페이지의 응답 데이터를 가져오고, 현재 인코딩을 확인한 후에 UTF-8로 변경하는 방법을 보여줍니다. 변경된 인코딩으로 Jsoup Document를 생성하고, 인코딩된 웹페이지를 출력합니다.

Jsoup을 사용하면 웹페이지의 인코딩을 쉽게 변경할 수 있으며, 올바른 형식의 데이터를 얻을 수 있습니다.

더 많은 정보를 원한다면, Jsoup 공식 문서를 참조하세요.