Java
001. HTML 파싱하기 - 준비하기
top2blue
2015. 7. 29. 14:26
1. http://jsoup.org/download 을 방문하여 다운받는다.
2. 메이븐을 사용할 경우 pom.xml 파일의 <dependencies>에 다음을 추가한다.
1 2 3 4 5 6 7 | <dependency> <!-- jsoup HTML parser library @ http://jsoup.org/ --> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.8.2</version> </dependency> | cs |
3. 문자열 파싱
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import org.jsoup.Jsoup; import org.jsoup.nodes.Document; // 문자열을 입력으로 HTML파싱하기 public class Jsoup01 { public static void main(String[] args) { // 문자열 String html = "<html><head><title>First parse</title></head>" + "<body><p>Parsed HTML into a doc.</p></body></html>"; // Jsoup.parse를 통한 Document객체 생성 Document doc = Jsoup.parse(html); // 텍스트만 읽기 String textOnly = doc.text(); // 출력 System.out.println(textOnly); } } |
4. HTML 문서의 일부분만 있을 경우 파싱하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.nodes.Node; // HTML 문서의 일부분만 있을 경우 파싱하기 public class Jsoup02 { public static void main(String[] args) { // 문자열 String html = "<div><p><b>HTML<u>문서</b></u>의 일부분만 있을때"; Document doc = Jsoup.parseBodyFragment(html); Element body = doc.body(); System.out.println("tagName() : " + body.tagName()); System.out.println("text() : " + body.text()); // 모든 자식노드 for(Node n : body.childNodes()){ System.out.println(n); } } } | cs |
5. URL에 있는 HTML 파싱하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; // URL에 있는 HTML 파싱하기 public class Jsoup03 { public static void main(String[] args) { Document doc = null; try { doc = Jsoup.connect("http://www.daum.net/").get(); String title = doc.title(); System.out.println(title); Element body = doc.body(); System.out.println(body.text()); } catch (IOException e) { e.printStackTrace(); } } } | cs |
6. 파일에 있는 HTML 파싱하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.io.File; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; // 파일에 있는 HTML 파싱하기 public class Jsoup04 { public static void main(String[] args) { String fileName = "example.html"; File file = new File(fileName); Document document = null; try { // Jsoup.parse(File in, String charsetName, String baseUri) // document = Jsoup.parse(file,"UTF-8","http://localhost:8080"); document = Jsoup.parse(file,"UTF-8"); String title = document.title(); System.out.println(title); String body = document.body().text(); System.out.println(body); } catch (IOException e) { e.printStackTrace(); } } } | cs |
example.html파일을 프로젝트 폴더에 만들어 놓는다.
1 2 3 4 5 6 7 8 9 10 11 12 | <!doctype html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>연습용 HTML문서</title> </head> <body> <h1>파일로부터 읽기</h1> </body> </html> | cs |