jsoup-퀵 가이드
jsoup은 HTML 기반 컨텐츠와 함께 작동하는 Java 기반 라이브러리입니다. 최고의 DOM, CSS 및 jquery와 유사한 메소드를 사용하여 데이터를 추출하고 조작하는 매우 편리한 API를 제공합니다. WHATWG HTML5 사양을 구현하고 최신 브라우저와 동일한 DOM으로 HTML을 구문 분석합니다.
jsoup 라이브러리는 WHATWG HTML5 사양을 구현하고 최신 브라우저에 따라 동일한 DOM으로 HTML 콘텐츠를 구문 분석합니다.
jsonp 라이브러리는 다음과 같은 기능을 제공합니다.
Multiple Read Support − URL, 파일 또는 문자열을 사용하여 HTML을 읽고 구문 분석합니다.
CSS Selectors − DOM 순회 또는 CSS 선택기를 사용하여 데이터를 찾고 추출 할 수 있습니다.
DOM Manipulation − HTML 요소, 속성 및 텍스트를 조작 할 수 있습니다.
Prevent XSS attacks − XSS 공격을 방지하기 위해 주어진 안전한 화이트리스트에 대해 사용자가 제출 한 콘텐츠를 정리할 수 있습니다.
Tidy − 깔끔한 HTML을 출력합니다.
Handles invalid data − jsoup은 닫히지 않은 태그, 암시 적 태그를 처리 할 수 있으며 문서 구조를 안정적으로 생성 할 수 있습니다.
지역 환경 설정
JUnit은 Java 용 프레임 워크이므로 가장 먼저 필요한 것은 컴퓨터에 JDK를 설치하는 것입니다.
시스템 요구 사항
JDK | 1.5 이상. |
---|---|
기억 | 최소 요구 사항이 없습니다. |
디스크 공간 | 최소 요구 사항이 없습니다. |
운영 체제 | 최소 요구 사항이 없습니다. |
1 단계 : 시스템에서 Java 설치 확인
먼저 콘솔을 열고 작업중인 운영 체제에 따라 java 명령을 실행하십시오.
OS | 직무 | 명령 |
---|---|---|
윈도우 | 명령 콘솔 열기 | c : \> 자바 버전 |
리눅스 | 명령 터미널 열기 | $ 자바 버전 |
맥 | 터미널 열기 | 기계 : <joseph $ java -version |
모든 운영 체제의 출력을 확인하겠습니다.
OS | 산출 |
---|---|
윈도우 | 자바 버전 "1.6.0_21" Java (TM) SE 런타임 환경 (빌드 1.6.0_21-b07) Java HotSpot (TM) Client VM (빌드 17.0-b17, 혼합 모드, 공유) |
리눅스 | 자바 버전 "1.6.0_21" Java (TM) SE 런타임 환경 (빌드 1.6.0_21-b07) Java HotSpot (TM) Client VM (빌드 17.0-b17, 혼합 모드, 공유) |
맥 | 자바 버전 "1.6.0_21" Java (TM) SE 런타임 환경 (빌드 1.6.0_21-b07) Java HotSpot (TM) 64 비트 서버 VM (빌드 17.0-b17, 혼합 모드, 공유) |
시스템에 Java가 설치되어 있지 않은 경우 다음 링크에서 Java SDK (Software Development Kit)를 다운로드하십시오. https://www.oracle.com. 이 자습서에서는 Java 1.6.0_21을 설치된 버전으로 가정합니다.
2 단계 : JAVA 환경 설정
설정 JAVA_HOME시스템에서 Java가 설치된 기본 디렉토리 위치를 가리키는 환경 변수. 예를 들면.
OS | 산출 |
---|---|
윈도우 | 환경 변수 JAVA_HOME을 C : \ Program Files \ Java \ jdk1.6.0_21로 설정합니다. |
리눅스 | 내보내기 JAVA_HOME = / usr / local / java-current |
맥 | export JAVA_HOME = / Library / Java / Home |
시스템 경로에 Java 컴파일러 위치를 추가합니다.
OS | 산출 |
---|---|
윈도우 | 문자열 추가 C:\Program Files\Java\jdk1.6.0_21\bin 시스템 변수의 끝에서 Path. |
리눅스 | 내보내기 경로 = $ PATH : $ JAVA_HOME / bin / |
맥 | 필요하지 않음 |
명령을 사용하여 Java 설치 확인 java -version 위에서 설명한대로.
3 단계 : jsoup 아카이브 다운로드
Maven Repository 에서 최신 버전의 jsoup jar 파일을 다운로드합니다 . 이 튜토리얼을 작성하는 시점에 jsoup-1.8.3.jar를 다운로드하여 C : \> jsoup 폴더에 복사했습니다.
OS | 아카이브 이름 |
---|---|
윈도우 | jsoup-1.8.3.jar |
리눅스 | jsoup-1.8.3.jar |
맥 | jsoup-1.8.3.jar |
4 단계 : jsoup 환경 설정
설정 JSOUP_HOME시스템에서 jsoup jar가 저장된 기본 디렉토리 위치를 가리키는 환경 변수. JSOUP 폴더에 jsoup-1.8.3.jar를 저장했다고 가정 해 보겠습니다.
Sr. 아니요 | OS 및 설명 |
---|---|
1 | Windows 환경 변수 JSOUP_HOME을 C : \ JSOUP로 설정합니다. |
2 | Linux 내보내기 JSOUP_HOME = / usr / local / JSOUP |
삼 | Mac export JSOUP_HOME = / Library / JSOUP |
5 단계 : CLASSPATH 변수 설정
설정 CLASSPATH JSOUP jar 위치를 가리키는 환경 변수.
Sr. 아니요 | OS 및 설명 |
---|---|
1 | Windows 환경 변수 CLASSPATH를 % CLASSPATH %; % JSOUP_HOME % \ jsoup-1.8.3.jar;.;로 설정합니다. |
2 | Linux 내보내기 CLASSPATH = $ CLASSPATH : $ JSOUP_HOME / jsoup-1.8.3.jar :. |
삼 | Mac 내보내기 CLASSPATH = $ CLASSPATH : $ JSOUP_HOME / jsoup-1.8.3.jar :. |
다음 예제는 HTML 문자열을 Document 객체로 구문 분석하는 방법을 보여줍니다.
통사론
Document document = Jsoup.parse(html);
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 문자열.
기술
parse (String html) 메서드는 입력 HTML을 새 문서로 구문 분석합니다. 이 문서 객체는 html dom의 세부 사항을 탐색하고 가져 오는 데 사용할 수 있습니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body><p>Sample Content</p></body></html>";
Document document = Jsoup.parse(html);
System.out.println(document.title());
Elements paragraphs = document.getElementsByTag("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Sample Title
Sample Content
다음 예제는 HTML 단편 문자열을 html 본문으로 Element 객체로 구문 분석하는 방법을 보여줍니다.
통사론
Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 조각 문자열.
body − 문서 본문 요소의 자식 요소를 나타내며 document.getElementsByTag ( "body")와 동일합니다.
기술
parseBodyFragment (String html) 메서드는 입력 HTML을 새 문서로 구문 분석합니다. 이 문서 개체를 사용하여 html 본문 조각의 세부 정보를 탐색하고 가져올 수 있습니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<div><p>Sample Content</p>";
Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();
Elements paragraphs = body.getElementsByTag("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Sample Content
다음 예제는 URL을 사용하여 웹에서 HTML을 가져 와서 데이터를 찾는 방법을 보여줍니다.
통사론
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − URL을 연결하고 HTML 문자열을 얻는 메인 클래스.
url −로드 할 html 페이지의 URL.
기술
connect (url) 메서드는 url에 연결하고 get () 메서드는 요청 된 URL의 html을 반환합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupTester {
public static void main(String[] args) throws IOException {
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
System.out.println(document.title());
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Google
다음 예제는 파일을 사용하여 디스크에서 HTML을 가져 와서 데이터를 찾는 방법을 보여줍니다.
통사론
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − URL을 연결하고 HTML 문자열을 얻는 메인 클래스.
url −로드 할 html 페이지의 URL.
기술
connect (url) 메서드는 url에 연결하고 get () 메서드는 요청 된 URL의 html을 반환합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupTester {
public static void main(String[] args) throws IOException, URISyntaxException {
URL path = ClassLoader.getSystemResource("test.htm");
File input = new File(path.toURI());
Document document = Jsoup.parse(input, "UTF-8");
System.out.println(document.title());
}
}
test.htm
C : \ jsoup 폴더에 다음 test.htm 파일을 만듭니다.
<html>
<head>
<title>Sample Title</title>
</head>
<body>
<p>Sample Content</p>
</body>
</html>
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Sample Title
다음 예제는 HTML 문자열을 Document 객체로 파싱 한 후 DOM과 같은 메소드의 사용을 보여줍니다.
통사론
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 문자열.
sampleDiv − Element 객체는 id "sampleDiv"로 식별되는 html 노드 요소를 나타냅니다.
links − Elements 객체는 "a"태그로 식별되는 여러 노드 요소를 나타냅니다.
기술
parse (String html) 메서드는 입력 HTML을 새 문서로 구문 분석합니다. 이 문서 객체는 html dom의 세부 사항을 탐색하고 가져 오는 데 사용할 수 있습니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a></div>"
+"</body></html>";
Document document = Jsoup.parse(html);
System.out.println(document.title());
Elements paragraphs = document.getElementsByTag("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
Element sampleDiv = document.getElementById("sampleDiv");
System.out.println("Data: " + sampleDiv.text());
Elements links = sampleDiv.getElementsByTag("a");
for (Element link : links) {
System.out.println("Href: " + link.attr("href"));
System.out.println("Text: " + link.text());
}
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Sample Title
Sample Content
Data: Google
Href: www.google.com
Text: Google
다음 예제는 HTML 문자열을 Document 객체로 파싱 한 후 선택기 메서드의 사용을 보여줍니다. jsoup은 CSS 선택기와 유사한 선택기를 지원합니다.
통사론
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 문자열.
sampleDiv − Element 객체는 id "sampleDiv"로 식별되는 html 노드 요소를 나타냅니다.
links − Elements 객체는 "a"태그로 식별되는 여러 노드 요소를 나타냅니다.
기술
document.select (expression) 메소드는 주어진 CSS 선택기 표현식을 구문 분석하여 html dom 요소를 선택합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+ "<div id='imageDiv' class='header'><img name='google' src='google.png' />"
+ "<img name='yahoo' src='yahoo.jpg' />"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Elements links = document.select("a[href]");
for (Element link : links) {
System.out.println("Href: " + link.attr("href"));
System.out.println("Text: " + link.text());
}
// img with src ending .png
Elements pngs = document.select("img[src$=.png]");
for (Element png : pngs) {
System.out.println("Name: " + png.attr("name"));
}
// div with class=header
Element headerDiv = document.select("div.header").first();
System.out.println("Id: " + headerDiv.id());
// direct a after h3
Elements sampleLinks = document.select("h3 > a");
for (Element link : sampleLinks) {
System.out.println("Text: " + link.text());
}
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Href: www.google.com
Text: Google
Name: google
Id: imageDiv
Text: Sample
다음 예제는 HTML 문자열을 Document 객체로 구문 분석 한 후 dom 요소의 속성을 가져 오는 메소드 사용을 보여줍니다.
통사론
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 문자열.
link − Element 객체는 앵커 태그를 나타내는 html 노드 요소를 나타냅니다.
link.attr() − attr (attribute) 메소드는 요소 속성을 검색합니다.
기술
Element 객체는 dom 요소를 나타내며 dom 요소의 속성을 얻기위한 다양한 방법을 제공합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Href: www.google.com
다음 예제는 HTML 문자열을 Document 객체로 구문 분석 한 후 텍스트를 가져 오는 메서드 사용을 보여줍니다.
통사론
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Text: " + link.text());
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 문자열.
link − Element 객체는 앵커 태그를 나타내는 html 노드 요소를 나타냅니다.
link.text() − text () 메서드는 요소 텍스트를 검색합니다.
기술
Element 객체는 dom 요소를 나타내며 dom 요소의 텍스트를 가져 오는 다양한 방법을 제공합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Element link = document.select("a").first();
System.out.println("Text: " + link.text());
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Text: Google
다음 예제는 HTML 문자열을 Document 객체로 구문 분석 한 후 내부 html 및 외부 html을 가져 오는 메소드 사용을 보여줍니다.
통사론
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Outer HTML: " + link.outerHtml());
System.out.println("Inner HTML: " + link.html());
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 문자열.
link − Element 객체는 앵커 태그를 나타내는 html 노드 요소를 나타냅니다.
link.outerHtml() − outerHtml () 메소드는 요소 전체 html을 검색합니다.
link.html() − html () 메소드는 내부 html 요소를 검색합니다.
기술
Element 객체는 dom 요소를 나타내며 dom 요소의 html을 가져 오는 다양한 방법을 제공합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Element link = document.select("a").first();
System.out.println("Outer HTML: " + link.outerHtml());
System.out.println("Inner HTML: " + link.html());
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Outer HTML: <a href="www.google.com">Google</a>
Inner HTML: Google
다음 예제는 html 페이지에있는 상대 URL과 절대 URL을 제공 할 수있는 메소드를 보여줍니다.
통사론
String url = "http://www.tutorialspoint.com/";
Document document = Jsoup.connect(url).get();
Element link = document.select("a").first();
System.out.println("Relative Link: " + link.attr("href"));
System.out.println("Absolute Link: " + link.attr("abs:href"));
System.out.println("Absolute Link: " + link.absUrl("href"));
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − URL에 연결하고 html 콘텐츠를 가져 오는 메인 클래스.
link − Element 객체는 앵커 태그를 나타내는 html 노드 요소를 나타냅니다.
link.attr("href")− 앵커 태그에있는 href 값을 제공합니다. 상대적이거나 절대적 일 수 있습니다.
link.attr("abs:href") − 문서의 기본 URI를 확인한 후 절대 URL을 제공합니다.
link.absUrl("href") − 문서의 기본 URI를 확인한 후 절대 URL을 제공합니다.
기술
요소 객체는 도메인을 나타내며 html 페이지에있는 상대 URL과 절대 URL을 가져 오는 방법을 제공합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) throws IOException {
String url = "http://www.tutorialspoint.com/";
Document document = Jsoup.connect(url).get();
Element link = document.select("a").first();
System.out.println("Relative Link: " + link.attr("href"));
System.out.println("Absolute Link: " + link.attr("abs:href"));
System.out.println("Absolute Link: " + link.absUrl("href"));
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Relative Link: index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
다음 예제는 dom 요소의 속성을 설정하고 HTML 문자열을 Document 객체로 구문 분석 한 후 대량 업데이트 및 클래스 메소드 추가 / 제거를위한 메소드 사용을 보여줍니다.
통사론
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
link.attr("href","www.yahoo.com");
link.addClass("header");
link.removeClass("header");
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 문자열.
link − Element 객체는 앵커 태그를 나타내는 html 노드 요소를 나타냅니다.
link.attr() − attr (attribute, value) 메서드는 요소 속성에 해당 값을 설정합니다.
link.addClass() − addClass (class) 메소드는 클래스 속성 아래에 클래스를 추가합니다.
link.removeClass() − removeClass (class) 메소드는 클래스 속성에서 클래스를 제거합니다.
기술
Element 객체는 dom 요소를 나타내며 dom 요소의 속성을 얻기위한 다양한 방법을 제공합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
+ "<div class='comments'><a href='www.sample1.com'>Sample1</a>"
+ "<a href='www.sample2.com'>Sample2</a>"
+ "<a href='www.sample3.com'>Sample3</a><div>"
+"</div>"
+ "<div id='imageDiv' class='header'><img name='google' src='google.png' />"
+ "<img name='yahoo' src='yahoo.jpg' />"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//Example: set attribute
Element link = document.getElementById("googleA");
System.out.println("Outer HTML Before Modification :" + link.outerHtml());
link.attr("href","www.yahoo.com");
System.out.println("Outer HTML After Modification :" + link.outerHtml());
System.out.println("---");
//Example: add class
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :" + div.outerHtml());
link.addClass("header");
System.out.println("Outer HTML After Modification :" + div.outerHtml());
System.out.println("---");
//Example: remove class
Element div1 = document.getElementById("imageDiv");
System.out.println("Outer HTML Before Modification :" + div1.outerHtml());
div1.removeClass("header");
System.out.println("Outer HTML After Modification :" + div1.outerHtml());
System.out.println("---");
//Example: bulk update
Elements links = document.select("div.comments a");
System.out.println("Outer HTML Before Modification :" + links.outerHtml());
links.attr("rel", "nofollow");
System.out.println("Outer HTML Before Modification :" + links.outerHtml());
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Outer HTML Before Modification :<a id="googleA" href="www.google.com">Google</a>
Outer HTML After Modification :<a id="googleA" href="www.yahoo.com">Google</a>
---
Outer HTML Before Modification :<div id="sampleDiv">
<a id="googleA" href="www.yahoo.com">Google</a>
</div>
Outer HTML After Modification :<div id="sampleDiv">
<a id="googleA" href="www.yahoo.com" class="header">Google</a>
</div>
---
Outer HTML Before Modification :<div id="imageDiv" class="header">
<img name="google" src="google.png">
<img name="yahoo" src="yahoo.jpg">
</div>
Outer HTML After Modification :<div id="imageDiv" class="">
<img name="google" src="google.png">
<img name="yahoo" src="yahoo.jpg">
</div>
---
Outer HTML Before Modification :<a href="www.sample1.com">Sample1</a>
<a href="www.sample2.com">Sample2</a>
<a href="www.sample3.com">Sample3</a>
Outer HTML Before Modification :<a href="www.sample1.com" rel="nofollow">Sample1</a>
<a href="www.sample2.com" rel="nofollow">Sample2</a>
<a href="www.sample3.com" rel="nofollow">Sample3</a>
다음 예제는 HTML 문자열을 Document 객체로 구문 분석 한 후 dom 요소에 html을 설정, 앞에 추가 또는 추가하는 메서드 사용을 보여줍니다.
통사론
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
div.html("<p>This is a sample content.</p>");
div.prepend("<p>Initial Text</p>");
div.append("<p>End Text</p>");
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 문자열.
div − Element 객체는 앵커 태그를 나타내는 html 노드 요소를 나타냅니다.
div.html() − html (content) 메소드는 요소의 외부 html을 해당 값으로 대체합니다.
div.prepend() − prepend (content) 메소드는 외부 html 앞에 내용을 추가합니다.
div.append() − append (content) 메소드는 외부 html 뒤에 내용을 추가합니다.
기술
Element 객체는 dom 요소를 나타내며 dom 요소에 html을 설정, 앞에 추가 또는 추가하는 다양한 방법을 제공합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
+"</body></html>";
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :\n" + div.outerHtml());
div.html("<p>This is a sample content.</p>");
System.out.println("Outer HTML After Modification :\n" + div.outerHtml());
div.prepend("<p>Initial Text</p>");
System.out.println("After Prepend :\n" + div.outerHtml());
div.append("<p>End Text</p>");
System.out.println("After Append :\n" + div.outerHtml());
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Outer HTML Before Modification :
<div id="sampleDiv">
<a id="googleA" href="www.google.com">Google</a>
</div>
Outer HTML After Modification :
<div id="sampleDiv">
<p>This is a sample content.</p>
</div>
After Prepend :
<div id="sampleDiv">
<p>Initial Text</p>
<p>This is a sample content.</p>
</div>
After Append :
<div id="sampleDiv">
<p>Initial Text</p>
<p>This is a sample content.</p>
<p>End Text</p>
</div>
Outer HTML Before Modification :
<span>Sample Content</span>
Outer HTML After Modification :
<span>Sample Content</span>
다음 예제는 HTML 문자열을 Document 객체로 구문 분석 한 후 dom 요소에 텍스트를 설정, 앞에 추가 또는 추가하는 메서드 사용을 보여줍니다.
통사론
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
div.text("This is a sample content.");
div.prepend("Initial Text.");
div.append("End Text.");
어디
document − 문서 객체는 HTML DOM을 나타냅니다.
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − HTML 문자열.
div − Element 객체는 앵커 태그를 나타내는 html 노드 요소를 나타냅니다.
div.text() − text (content) 메서드는 요소의 내용을 해당 값으로 대체합니다.
div.prepend() − prepend (content) 메소드는 외부 html 앞에 내용을 추가합니다.
div.append() − append (content) 메소드는 외부 html 뒤에 내용을 추가합니다.
기술
Element 객체는 dom 요소를 나타내며 dom 요소에 html을 설정, 앞에 추가 또는 추가하는 다양한 방법을 제공합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
+"</body></html>";
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :\n" + div.outerHtml());
div.text(This is a sample content.");
System.out.println("Outer HTML After Modification :\n" + div.outerHtml());
div.prepend("Initial Text.");
System.out.println("After Prepend :\n" + div.outerHtml());
div.append("End Text.");
System.out.println("After Append :\n" + div.outerHtml());
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Outer HTML Before Modification :
<div id="sampleDiv">
<a id="googleA" href="www.google.com">Google</a>
</div>
Outer HTML After Modification :
<div id="sampleDiv">
This is a sample content.
</div>
After Prepend :
<div id="sampleDiv">
Initial Text.This is a sample content.
</div>
After Append :
<div id="sampleDiv">
Initial Text.This is a sample content.End Text.
</div>
다음 예제는 XSS 공격 또는 교차 사이트 스크립팅 공격의 방지를 보여줍니다.
통사론
String safeHtml = Jsoup.clean(html, Whitelist.basic());
어디
Jsoup − 주어진 HTML 문자열을 분석하기위한 메인 클래스.
html − 초기 HTML 문자열.
safeHtml − 정리 된 HTML.
Whitelist − html을 보호하기 위해 기본 구성을 제공하는 개체입니다.
clean() − 화이트리스트를 사용하여 html을 정리합니다.
기술
Jsoup 객체는 화이트리스트 구성을 사용하여 HTML을 삭제합니다.
예
C : /> jsoup에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist;
public class JsoupTester {
public static void main(String[] args) {
String html = "<p><a href='http://example.com/'"
+" onclick='checkData()'>Link</a></p>";
System.out.println("Initial HTML: " + html);
String safeHtml = Jsoup.clean(html, Whitelist.basic());
System.out.println("Cleaned HTML: " +safeHtml);
}
}
결과 확인
다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러 :
C:\jsoup>javac JsoupTester.java
이제 JsoupTester를 실행하여 결과를 확인하십시오.
C:\jsoup>java JsoupTester
결과를 확인하십시오.
Initial HTML: <p><a href='http://example.com/' onclick='checkData()'>Link</a></p>
Cleaned HTML: <p><a href="http://example.com/" rel="nofollow">Link</a></p>