[java] Jsoup을 사용하여 웹페이지 내 테이블 데이터 추출하기
웹 크롤링은 웹페이지에서 원하는 데이터를 추출하는 방법 중 하나입니다. Jsoup은 Java로 작성된 HTML 파싱 라이브러리로써, 간단하게 웹페이지의 HTML 구조를 탐색하고 원하는 데이터를 추출할 수 있습니다. 이번 포스트에서는 Jsoup을 사용하여 웹페이지 내 테이블 데이터를 추출하는 방법을 알아보겠습니다.
1. Jsoup 라이브러리 추가
먼저 프로젝트에 Jsoup 라이브러리를 추가해야 합니다. Maven 프로젝트의 경우 pom.xml
파일에 다음과 같은 의존성을 추가합니다.
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
Gradle 프로젝트의 경우 build.gradle
파일에 다음과 같은 의존성을 추가합니다.
compile group: 'org.jsoup', name: 'jsoup', version: '1.13.1'
의존성을 추가한 후에는 라이브러리를 다운로드하여 프로젝트에서 사용할 수 있게 됩니다.
2. Jsoup을 사용하여 테이블 데이터 추출하기
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class WebTableCrawler {
public static void main(String[] args) {
try {
// 웹페이지 URL 설정
String url = "http://example.com";
// Jsoup을 사용하여 웹페이지 HTML 가져오기
Document doc = Jsoup.connect(url).get();
// 테이블 태그 선택
Elements tables = doc.select("table");
// 첫 번째 테이블 선택
Element table = tables.get(0);
// 테이블 내 모든 행 선택
Elements rows = table.select("tr");
// 행 순회
for (Element row : rows) {
// 행 내 모든 셀 선택
Elements cells = row.select("td");
// 셀 순회
for (Element cell : cells) {
// 셀 내용 출력
System.out.print(cell.text() + "\t");
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
위 예제 코드에서는 Jsoup을 사용하여 특정 웹페이지의 HTML을 가져온 후, 첫 번째 테이블을 선택하고 테이블 내의 모든 행과 셀을 추출하여 출력합니다.
3. 실행 결과
실행하면 해당 웹페이지의 첫 번째 테이블에 있는 모든 데이터가 탭으로 구분되어 출력됩니다. 이렇게 되면 테이블 데이터를 쉽게 추출하여 다양한 용도로 활용할 수 있습니다.
마무리
이번 포스트에서는 Jsoup을 사용하여 웹페이지 내 테이블 데이터를 추출하는 방법을 알아보았습니다. Jsoup은 간편하고 강력한 기능을 제공하여 웹 크롤링을 쉽게 할 수 있는 도구입니다. 데이터 추출이 필요한 경우에는 Jsoup을 활용해 보세요.