회사에서 해당 링크에서 이미지를 가져와서 뿌려줄 업무가 있어서 간단하게 정리했습니다.
자세한 내용은 https://jsoup.org/
참조하시면 상세히 설명이 되어있습니다.
예시
selectFirst() 메소스 활용
String literatureNumber = "abcdegf";
String url = "http://abpat.kipris.or.kr/abpat/remoteFile.do?method=bigFrontDraw&publ_key=US," + literatureNumber +"&cntry=US";
try {
// URL에서 HTML 가져오기
Document doc = Jsoup.connect(url).get();
} catch (IOException e) {
e.printStackTrace();
}
// 이미지 태그(ID: image_src) 가져오기
Element imageTag = doc.selectFirst("img#image_src");
if (imageTag != null) {
String imageUrl = "http://abpat.kipris.or.kr/" + imageTag.attr("src");
logger.info("Image URL: " + imageUrl);
model.addAttribute("imageUrl", imageUrl);
} else {
System.out.println("Image tag not found.");
}
getElementsByTagName() 활용
public static String getHtmlImageTagUrl(String url) {
try {
// URL에서 XML 또는 HTML 가져오기
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new URL(url).openStream());
// 이미지 태그(ID: image_src) 가져오기
NodeList imageTags = doc.getElementsByTagName("img"); // NodeList로 변환
for (int i = 0; i < imageTags.getLength(); i++) {
Element imageTag = (Element) imageTags.item(i);
String id = imageTag.getAttribute("id");
if (id.equals("image_src")) { // 태그 아이디 image_src랑 같으면 실행
String imageUrl = imageTag.getAttribute("src");
logger.info("Image URL: " + imageUrl);
return imageUrl;
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
'프로그래밍 > Java' 카테고리의 다른 글
자바 synchronized (0) | 2024.03.29 |
---|---|
[Java] List<?> indexof (equals, hascode @Override) (0) | 2023.11.04 |
[Java] "|" 를 구분자로 하여 split 하기 (1) | 2023.06.14 |
자바로 OpenAPI로 받은 XML 데이터 파싱하기 (0) | 2023.06.13 |
[JAVA] Map for-each 정리 (0) | 2023.06.08 |