Java에서 오픈 소스 라이브러리 JSoup을 사용하여 HTML 파일 인스턴스 분석
JSoup 라이브러리는 무엇입니까?
Jsoup은 실제 응용 프로그램의 HTML을 처리하는 데 사용할 수 있는 자바 라이브러리입니다.이것은 매우 편리한 API를 제공하여 데이터의 추출과 수정을 진행하고 DOM, CSS, jquery 스타일 방법의 장점을 충분히 이용했다.Jsoup은 WAHTWG HTML5의 규범을 실현했다. HTML에서 해석된 DOM과 Chrome, Firefox 같은 현대 브라우저에서 해석된 것과 완전히 일치한다.다음은 Jsoup 라이브러리의 유용한 기능입니다.
1. Jsoup은 URL, 파일 또는 문자열에서 HTML을 가져와 해석할 수 있습니다.
2. Jsoup은 데이터를 찾아 추출할 수 있으며 DOM 스트리밍 또는 CSS 선택기를 사용할 수 있습니다.
3. Jsoup을 사용하여 HTML 요소, 속성 및 텍스트를 수정할 수 있습니다.
4. Jsoup은 XSS 공격을 방지하기 위해 사용자가 제출한 내용이 깨끗하다는 안전한 화이트리스트를 통해 확보했다.
5. Jsoup은 깔끔한 HTML을 출력할 수 있습니다.
Jsoup의 디자인 취지는 실제 생활에 나타나는 다양한 HTML을 처리하는 데 사용되며, 정확하고 효과적인 HTML과 완전하지 않은 무효한 라벨 집합을 포함한다.Jsoup의 핵심 경쟁력 중 하나는 건장성이다.
Java에서 Jsoup을 사용하여 HTML 분석
이 자바 HTML 해석 강좌에서 우리는 자바에서 Jsoup 해석을 사용하고 HTML을 훑어보는 세 가지 다른 예시를 볼 수 있다.첫 번째 예에서 HTML 문자열을 해석합니다. 그 내용은 Java의 문자열 글자 크기로 구성된 라벨입니다.두 번째 예에서는 WEB에서 HTML 문서를 다운로드하고, 세 번째 예에서는 HTML 예시 파일login을 불러옵니다.html로 해석합니다.이 파일은 HTML 문서의 예시로 title 탭을 포함하고 body 안에 div 탭이 있으며 폼이 포함되어 있습니다.사용자 이름과 비밀번호를 얻기 위한 input 탭이 있으며, 다음 동작을 위한 제출 및 리셋 단추도 있습니다.이것은 정확하고 효과적인 HTML이다. 즉, 모든 라벨과 속성은 정확하게 닫힌다.다음은 이 HTML의 예제 파일입니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Page</title>
</head>
<body>
<div id="login" class="simple" >
<form action="login.do">
Username : <input id="username" type="text" /><br>
Password : <input id="password" type="password" /><br>
<input id="submit" type="submit" />
<input id="reset" type="reset" />
</form>
</div>
</body>
</html>
Jsoup을 사용하여 HTML을 해석하는 것은 매우 간단합니다. 정적 방법인 Jsoup을 호출하기만 하면 됩니다.parse () 와 HTML 문자열을 보내면 됩니다.Jsoup은 문자열, 파일, URL, URL, 심지어 InputStream에서 HTML 파일을 읽을 수 있는 여러 개의 다시 불러오는 parse () 방법을 제공합니다.UTF-8 인코딩이 아니라면 HTML 파일을 정확하게 읽을 수 있도록 문자 인코딩을 지정할 수도 있습니다.다음은 Jsoup 라이브러리의 HTML 해석 방법의 전체 목록입니다.parse(String html) 메서드는 입력한 HTML을 새 Document로 해석합니다.Jsoup에서 Document는 Element를 상속하고 Node에서 상속합니다.같은 TextNode도 Node에서 상속됩니다.null이 아닌 문자열만 입력하면 head와 body 요소를 포함하는 문서를 성공적으로 해석할 수 있습니다.이 Document를 가져오면 Document와 그 부류 Element와 Node 위의 적당한 방법을 사용해서 원하는 데이터를 얻을 수 있습니다.HTML 문서 해결을 위한 Java 프로그램
다음은 HTML 문자열, 네트워크에서 다운로드한 HTML 파일, 로컬 파일 시스템의 HTML 파일을 분석하는 완전한 Java 프로그램입니다.이 프로그램을 실행하려면 Eclipse IDE나 다른 IDE, 심지어 명령을 사용할 수 있습니다.Eclipse에서는 간단합니다. 이 코드를 복사하고 자바 프로젝트를 새로 만듭니다. src 패키지에 오른쪽 단추를 눌러서 붙여넣으면 됩니다.Eclipse는 정확한 패키지와 같은 이름의 자바 원본 파일을 만들 수 있기 때문에 작업량이 가장 적습니다.만약 당신이 이미 자바 예시 프로젝트를 가지고 있다면, 단지 한 걸음이면 된다.아래의 이 자바 프로그램은 HTML 파일을 해석하고 훑어보는 세 가지 다른 예를 보여 줍니다.첫 번째 예에서 우리는 HTML이라는 내용의 문자열을 직접 해석했고, 두 번째 예에서 우리는 URL에서 다운로드한 HTML 파일을 해석했고, 세 번째 예에서 우리는 로컬 파일 시스템에서 HTML 문서를 불러와 해석했다.첫 번째와 세 번째 예에서는 문서 대상을 얻기 위해parse 방법을 사용했습니다. 탭 값이나 속성 값을 추출하기 위해 검색할 수 있습니다.두 번째 예에서 우리는 Jsoup을 사용했다.connect 메서드, URL 연결을 만들고 HTML을 다운로드하여 확인합니다.이 방법도 Document를 되돌려줍니다. 다음 검색과 탭이나 속성의 값을 얻을 수 있습니다.
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
/**
[*] Java Program to parse/read HTML documents from File using Jsoup library.
[*] Jsoup is an open source library which allows Java developer to parse HTML
[*] files and extract elements, manipulate data, change style using DOM, CSS and
[*] JQuery like method.
[*]
[*] @author Javin Paul
[*]/
public class HTMLParser{
public static void main(String args[]) {
// Parse HTML String using JSoup library
String HTMLSTring = "<!DOCTYPE html>"
+ "<html>"
+ "<head>"
+ "<title>JSoup Example</title>"
+ "</head>"
+ "<body>"
+ "|[b]HelloWorld[/b]"
+ ""
+ "</body>"
+ "</html>";
Document html = Jsoup.parse(HTMLSTring);
String title = html.title();
String h1 = html.body().getElementsByTag("h1").text();
System.out.println("Input HTML String to JSoup :" + HTMLSTring);
System.out.println("After parsing, Title : " + title);
System.out.println("Afte parsing, Heading : " + h1);
// JSoup Example 2 - Reading HTML page from URL
Document doc;
try {
doc = Jsoup.connect("http://google.com/").get();
title = doc.title();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Jsoup Can read HTML page from URL, title : " + title);
// JSoup Example 3 - Parsing an HTML file in Java
//Document htmlFile = Jsoup.parse("login.html", "ISO-8859-1"); // wrong
Document htmlFile = null;
try {
htmlFile = Jsoup.parse(new File("login.html"), "ISO-8859-1");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // right
title = htmlFile.title();
Element div = htmlFile.getElementById("login");
String cssClass = div.className(); // getting class form HTML element
System.out.println("Jsoup can also parse HTML file directly");
System.out.println("title : " + title);
System.out.println("class of div tag : " + cssClass);
}
}
출력:
Input HTML String to JSoup :<!DOCTYPE html><html><head><title>JSoup Example</title></head><body><table><tr><td><h1>HelloWorld</h1></tr></table></body></html>
After parsing, Title : JSoup Example
Afte parsing, Heading : HelloWorld
Jsoup Can read HTML page from URL, title : Google
Jsoup can also parse HTML file directly title : Login Page
class of div tag : simple
Jsoup의 장점은 건장성이 매우 강하다는 것이다.Jsoup HTML 해석기는 당신이 제공한 HTML을 최대한 깨끗하게 해석할 것입니다. 이 HTML이 형식이 좋은지는 고려하지 마십시오.이것은 다음과 같은 오류를 처리할 수 있습니다. 닫히지 않은 탭 (예를 들어 자바 Scala to
자바 Scala), 은밀한 탭 (예를 들어 나체 | 자바 is Great가 | 안에 봉인됨) 은 항상 문서 구조 (head와 body를 포함하는 HTML, 그리고 head에는 정확한 요소만 포함됨) 를 만들 수 있습니다.이것이 바로 자바에서 HTML을 어떻게 해석하는가이다.Jsoup은 HTML 문서, body 세션, HTML 문자열, 웹에서 HTML 내용을 직접 해석하는 데 매우 간단하고 튼튼한 개원 라이브러리입니다.이 글에서 우리는 자바에서 특정한 HTML 라벨을 얻는 방법을 배웠다. 첫 번째 예에서 우리는 제목과 H1 라벨의 값을 텍스트로 추출했고, 세 번째 예에서 우리는 CSS 속성을 추출하여 HTML 라벨에서 속성 값을 얻는 방법을 배웠다.강력한 jQuery 스타일의 html 말고.body().getElementsByTag("h1").text () 메서드, 임의의 HTML 태그를 추출할 수 있으며, 문서와 같은 것도 제공합니다.title() 및 Element.className () 이렇게 편리한 방법으로 제목과 CSS 클래스를 빠르게 얻을 수 있습니다.JSoup이 즐겁게 놀 수 있기를 바랍니다. 곧 이 API에 대한 더 많은 예를 볼 수 있을 것입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.