Java에서 오픈 소스 라이브러리 JSoup을 사용하여 HTML 파일 인스턴스 분석

HTML은 WEB의 핵심이다. 인터넷에서 당신이 보는 모든 페이지는 HTML이다. 자바스크립트, JSP, PHP, ASP 또는 다른 어떤 WEB 기술의 동적 생성이든 상관없다.브라우저가 HTML을 해석하고 렌더링합니다.그러나 자바 프로그램에서 HTML 문서를 해석하고 특정한 요소, 라벨, 속성을 찾거나 특정한 요소가 존재하는지 확인해야 한다면 어떻게 해야 합니까?만약 당신이 자바 프로그래밍을 사용한 지 여러 해가 되었다면, 나는 당신이 XML을 해석해 보았을 뿐만 아니라, DOM이나 SAX와 같은 해석기를 사용한 적이 있을 것이라고 믿지만, 아마도 당신은 어떤 HTML 해석 작업도 해 본 적이 없을 것이다.더 풍자적인 것은 자바 응용 프로그램에서 HTML 문서를 해석해야 할 때가 드물다는 것이다. 여기에는 Servlet이나 다른 자바 WEB 기술이 포함되지 않는다.더 심각한 것은 JDK 핵심에도 HTTP나 HTML이 포함된 라이브러리가 없다는 것이다. 적어도 나는 이것이 있는지 모른다.이것이 바로 HTML 파일을 해석하는 데 부딪히면 많은 Java 프로그래머들이 먼저 Google을 통해 Java에서 HTML 라벨을 꺼내는 방법을 봐야 하는 이유입니다.내가 이것을 필요로 할 때, 나는 틀림없이 일부 개원 라이브러리가 이것을 실현할 수 있을 것이라고 믿지만, 나는 JSoup이 이렇게 멋있고 기능이 완비된 라이브러리가 있을 줄은 생각하지 못했다.HTML 문서를 읽고 해석할 수 있을 뿐만 아니라, HTML 파일에서 모든 요소와 속성, CSS 속성을 추출할 수 있으며, 수정할 수 있습니다.JSoup이 있으면 HTML 문서에 대해 무엇이든 할 수 있습니다.Google 홈페이지나 URL에서 Java에서 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에 대한 더 많은 예를 볼 수 있을 것입니다.

좋은 웹페이지 즐겨찾기