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

Jsoup은 HTML 파싱 및 웹 크롤링을 위한 자바 라이브러리입니다. 웹 페이지에 접근하여 데이터를 가져오는 경우, 때로는 데이터가 인코딩되어 있는 경우가 있습니다. 이때 Jsoup을 사용하여 데이터를 디코딩할 수 있습니다.

1. Jsoup 디코딩 설정하기

먼저, Jsoup에서 디코딩 설정을 해야 합니다. 다음 코드 예제에서는 UTF-8 디코딩을 사용하는 방법을 보여줍니다:

String html = "<html>...</html>";
Document doc = Jsoup.parse(html);
doc.outputSettings().charset("UTF-8");

위의 예제에서 html은 웹페이지의 HTML 코드를 나타냅니다. Jsoup.parse(html)을 사용하여 HTML을 파싱하고, doc.outputSettings().charset("UTF-8")을 통해 디코딩 설정을 UTF-8로 지정합니다.

2. 웹페이지에서 응답 데이터 가져오기

Jsoup을 사용하여 웹페이지에서 응답 데이터를 가져오는 방법은 다음과 같습니다:

String url = "https://www.example.com";
Document doc = Jsoup.connect(url).get();
String data = doc.text();

위의 예제에서 url은 가져올 웹페이지의 URL을 나타냅니다. Jsoup.connect(url).get()을 사용하여 웹페이지에 접근하고, doc.text()로 해당 웹페이지의 텍스트 데이터를 가져옵니다.

3. 데이터 디코딩하기

웹페이지에서 가져온 데이터가 인코딩되어 있다면, Jsoup을 사용하여 디코딩할 수 있습니다:

String decodedData = new String(data.getBytes("ISO-8859-1"), "UTF-8");

위의 예제에서 data는 가져온 웹페이지의 데이터를 나타냅니다. getBytes("ISO-8859-1")을 통해 ISO-8859-1 형식으로 인코딩된 데이터를 바이트 배열로 변환하고, new String(..., "UTF-8")을 통해 변환된 데이터를 UTF-8로 디코딩합니다.

결론

Jsoup을 사용하여 웹페이지에서 가져온 인코딩된 데이터를 디코딩하는 방법을 살펴보았습니다. 웹 크롤링이나 데이터 스크래핑 작업을 수행할 때, Jsoup을 활용하여 데이터를 적절하게 디코딩하여 사용해야 합니다. 자세한 내용은 Jsoup 공식 문서를 참조하시기 바랍니다.