JAVA

[JAVA] JSoup CSS 선택자

인생아 2024. 10. 28. 15:37
반응형

CSS 선택자 활용법

JSoup는 HTML 문서에서 CSS 선택자를 사용해 특정 요소를 쉽게 찾을 수 있도록 도와줍니다. CSS 선택자는 HTML 요소를 태그, 클래스, ID, 속성 등에 따라 유연하게 선택할 수 있어, 웹 페이지에서 원하는 데이터를 빠르고 정확하게 추출하는 데 유용합니다. 이를 통해 리눅스 환경에서도 웹 데이터 스크래핑 작업을 효율적으로 수행할 수 있습니다.

// 기본적인 CSS 선택자 사용 예제
Document doc = Jsoup.connect("http://example.com").get();
Elements paragraphs = doc.select("p"); // 모든 p 태그 선택
for (Element p : paragraphs) {
    System.out.println(p.text());
}

위 예제는 페이지 내 모든 <p> 태그를 선택해 텍스트를 출력합니다. CSS 선택자를 사용하여 특정 HTML 태그를 선택함으로써 텍스트 추출을 쉽게 수행할 수 있습니다.

선택자를 사용한 복잡한 요소 찾기

CSS 선택자는 단순한 태그뿐 아니라, 특정 조건에 맞는 복잡한 요소도 찾을 수 있습니다. 예를 들어, 자식 요소를 선택하거나 특정 클래스가 포함된 요소를 선택하는 등 고급 선택자를 활용하면 다단계 구조에서도 정확하게 원하는 데이터를 추출할 수 있습니다.

// 특정 클래스와 자식 요소를 함께 선택하는 예제
Elements complexSelection = doc.select("div.content > ul > li.item");
for (Element item : complexSelection) {
    System.out.println("아이템 텍스트: " + item.text());
}

위 코드는 div.content 안에 있는 ul 태그의 자식 요소 중 li.item 클래스에 해당하는 요소를 찾습니다. 이와 같이 계층적인 구조에서도 원하는 요소를 손쉽게 찾아낼 수 있습니다.

ID, 클래스, 속성 선택자 활용 예제

JSoup는 ID, 클래스, 속성 선택자를 통해 특정 조건을 만족하는 요소를 간편하게 찾을 수 있습니다. 예를 들어, #id를 사용해 ID가 일치하는 요소를 선택하거나, .class로 클래스명이 일치하는 요소를 선택할 수 있습니다. 속성 선택자는 특정 속성값이 있는 요소만을 선택할 때 유용하게 사용됩니다.

// ID 선택자 활용 예제
Element header = doc.select("#header").first();
System.out.println("헤더 텍스트: " + header.text());

// 클래스 선택자 활용 예제
Elements items = doc.select(".item-class");
for (Element item : items) {
    System.out.println("아이템 텍스트: " + item.text());
}

// 속성 선택자 활용 예제
Elements links = doc.select("a[href]");
for (Element link : links) {
    System.out.println("링크 URL: " + link.attr("href"));
}

위 예제는 각각 #header ID, .item-class 클래스, href 속성이 있는 a 태그를 선택하는 코드입니다. 이 방법으로 특정 조건을 충족하는 HTML 요소만을 정확히 골라낼 수 있으며, 웹 크롤링 시 불필요한 데이터를 걸러내고 중요한 정보만 추출하는 데 매우 유용합니다.

참고사이트

 

반응형