Java : JSOUP 를 이용, html에서 소스, 링크경로 추출후 절대 경로로 바꾸기

by 조쉬 posted Jan 08, 2019
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

Java 라이브러리 중에 JSOUP 라고 심플하면서도 왠지 간지나는 HTML 문서를 다루는 라이브러리가 있다.


요 라이브러리를 이용해 HTML 문서에서 각종 경로를 추출해서 요 경로를 절대 경로로 바꿔보자.


먼저 테스트할 html 문서

<html>
<head>
    <title>테스트다!!</title>
 
    <script type="text/javascript" src="/resource/js/jquery-1.7.1.min.js"></script>
 
    <link type="text/css" href="/resource/css/admin/general.css" rel="stylesheet" />
</head>
 
<body>
<span id="navi">
    <img src="http://www.naver.com/resource/image/stitle_standarda.gif" alt="" />
</span>
 
테스트다!!
</body>
</html>


테스트소스


import java.io.IOException;
import java.net.URL;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
 
public class Test  {
    public static void main(final String[] args) throws IOException{
        Document doc = Jsoup.parse(
                new URL("http://127.0.0.1:8080/index.html").openConnection().getInputStream(), 
                "UTF-8", 
                "http://127.0.0.1:8080/");
         
        // src attribute 가 있는 엘리먼트들을 선택
        Elements elems = doc.select("[src]");
        for( Element elem : elems ){
            if( !elem.attr("src").equals(elem.attr("abs:src")) ){
                elem.attr("src", elem.attr("abs:src"));
            }
        }
         
        // href attribute 가 있는 엘리먼트들을 선택 
        elems = doc.select("[href]");
        for( Element elem : elems ){
            if( !elem.attr("href").equals(elem.attr("abs:href")) ){
                elem.attr("href", elem.attr("abs:href"));
            }
        }
         
        System.out.println(doc.toString());
    }
}

변환된 html 문서

<html>

<head>

    <title>테스트다!!</title>

    <script type="text/javascript" src="http://127.0.0.1:8080/resource/js/jquery-1.7.1.min.js"></script>

    <link type="text/css" href="http://127.0.0.1:8080/resource/css/admin/general.css" rel="stylesheet" />

</head>

<body>

    <span id="navi"> <img src="http://www.naver.com/resource/image/stitle_standarda.gif" alt="" /></span> 

    테스트다!!

</body>

</html>

JSOUP 사이트 : http://jsoup.org/


Maven Dependency


<dependency>

    <groupId>org.jsoup</groupId>

    <artifactId>jsoup</artifactId>

    <version>1.6.3</version>

</dependency>