개발관련/JAVA

[JAVA] html에서 img 태그 src 이미지 URL 추출(Pattern 정규식 사용)

90만식 2025. 3. 26. 14:07
728x90

1. 문제상황

  • 제휴사와 전문 개발 중 상품 상세페이지의 이미지를 전달 해달라는 요건 전달 받음
  • 데이터 확인 결과 상품 상세 페이지의 이미지를 따로 저장하지 않고 html을 통째로 저장
  • 전문 전달을 위해 html에서 이미지 url을 추출 해 전달 해야 하는 상황 발생

 

2.해결 방안

  • Pattern 정규식을 사용 해 img 태그의 src 속성값을 추출한다.
  • 핵심 코드 
    Pattern pattern = Pattern.compile("<img [^>]*src=\"([^\"]*)\"");
    Matcher matcher = pattern.matcher(input);
    public static void main(String[] args) {

        String detailImg = "<p><img alt=\"\" src=\"https://img.test.com/722/test.jpg\" style=\"height:19938px; width:1000px\" /><img alt=\"\" src=\"https://img.test.com/test132.jpg\" style=\"height:15096px; width:1000px\" /><img alt=\"\" src=\"https://img.test.com/test1342.jpg\" style=\"height:9523px; width:1000px\" /><img alt=\"\" src=\"https://img.test.com/test0117.jpg\" style=\"height:5068px; width:1000px\" /><img alt=\"\" src=\"https://img.test.com/test22.jpg\" style=\"height:19769px; width:1000px\" /></p>\n\n<p></p>\n";

        List<String> imageUrls = extractImageUrls(detailImg);
        for (String url : imageUrls) {
            System.out.println(url);
        }

    }

    private static List<String> extractImageUrls(String input) {
        List<String> urls = new ArrayList<>();
        Pattern pattern = Pattern.compile("<img [^>]*src=\"([^\"]*)\"");
        Matcher matcher = pattern.matcher(input);

        while (matcher.find()) {
            urls.add(matcher.group(1));
        }

        return urls;
    }

 

728x90