jsoup 이용해서 URL 절대경로 추출

반응형

jsoup 은 HTML parser 자바 라이브러리이다. jsoup 라이브러리를 이용하면 손쉽게 HTML내에서 원하는 데이터를 찾아 추출할 수 있다. 

 

URL의 절대 경로를 얻고 싶을 경우 어떻게 해야 하는지 알아보자.

    <body>
        <a href="/articles/2">article2</a>
    </body>

 

 

절대 경로 추출

기본적으로 a 태그의 href에 해당하는 값을 추출하는 방법은 아래와 같다.

Element link = doc.select("a").first();
String articleUrl = link.attr("href");

이렇게 하면 "/articles/2" 의 값을 얻을 수 있다.

 

 

 

절대 경로 URL을 추출하고 싶으면 속성 값 prefix로  abs: 를 붙이면 된다.

Element link = doc.select("a").first();
String articleUrl = link.attr("abs:href");

이렇게 하게 되면 "문서의 Base URI/articles/2" 의 값을 없을 수 있다. 

 

 

만약 HTML String에서 절대 경로 URL 값을 추출하고 싶으면 Base URI를 직접 추가해줘야 한다.

String baseUri = "http://test.com";
String data = "<html><body>\n" +
        " <a href=\"/articles/2\">article2</a>\n" +
        "</body> \n" +
        "</html>";


Document doc = Jsoup.parse(data, baseUri);
Element link = doc.select("a").first();
String articleUrl = link.attr("abs:href");

 

 

참고