반응형
Document 및 Element 클래스는, XML 문서를 다루기 위한 DOM(Document Object Model) API에 속하는 클래스입니다.
1. Document 클래스
- Document 클래스는 XML 문서의 전체 구조를 나타냅니다.
- Document 객체는 XML 문서의 루트 엘리먼트에 대한 진입점이며, 해당 문서의 전체 트리 구조를 포함합니다.
2. Element 클래스
- Element 클래스는 XML 문서에서 특정 엘리먼트를 나타냅니다.
- Element 객체는 XML 문서의 특절 엘리먼트에 대한 정보를 포함하며, 이 엘리먼트의 하위 엘리먼트, 속성 등을 다룰 수 있습니다.
보통 XML 문서를 파싱할 때, XML 문서의 구조를 Document로 읽어오고,
그 다음에 원하는 정보 추출을 위하여, Element를 사용합니다.
이와 같은 클래스는, Jsoup 크롤링 시 사용할 수 있습니다.
아래는 예제 코드입니다.
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
public class JsoupExample {
public static void main(String[] args) {
try {
// 웹 페이지에서 HTML을 가져오기
Document document = Jsoup.connect("https://www.example.com").get();
// 특정 CSS 선택자를 이용하여 엘리먼트 가져오기
Elements links = document.select("a[href]");
// 가져온 엘리먼트 순회하며 정보 출력
for (Element link : links) {
System.out.println("Link: " + link.attr("href"));
System.out.println("Text: " + link.text());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Jsoup 라이브러리 중 eachAttr이라는 메서드가 있습니다.
eachAttr 메서드는, 특정 Element의 모든 속성을 반복하면서 작업할 때 사용됩니다.
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupEachAttrExample {
public static void main(String[] args) {
String html = "<div id='example' class='container' data-custom='123'>Hello, Jsoup!</div>";
Document document = Jsoup.parse(html);
Element element = document.selectFirst("div");
// 각 속성을 출력하는 예제
element.eachAttr((key, value) -> {
System.out.println("Attribute: " + key + " = " + value);
});
}
}
반응형
'Java' 카테고리의 다른 글
JAVA | JVM(Java Virtual Machine)이란? JVM의 작동원리 (2) | 2024.08.21 |
---|---|
Java | 정적 팩토리 메서드(Static Factory Method) (0) | 2024.03.04 |
Java | TrustManager이란? / SSL 인증서 없이 https 통신 (1) | 2024.02.29 |
Java | JSONObject 클래스란? (0) | 2024.02.29 |
Java | HttpRequestHandler란? (0) | 2024.02.29 |