반응형
# Naver Search API 활용 도서정보를 입력하여 ISBN, IMAGE 검출하기
- Naver Search API 연동, 도서정보를 입력(요청 변수 값) 하여 원하는 정보(ISBN, IMAGE) 검출. (Jsoup 사용)
## 준비물
- Naver Book Open API 사용 등록 필요.
- https://developers.naver.com/docs/serviceapi/search/book/book.md#%EC%B1%85
책 - Search API
책 NAVER Developers - 검색 API 책 검색 개발가이드 검색 > 책 네이버 책 검색 결과를 출력해주는 REST API입니다. 비로그인 오픈 API이므로 GET으로 호출할 때 HTTP Header에 애플리케이션 등록 시 발급받은 C
developers.naver.com
- 위 사이트 접속하여 '오픈 API 이용 신청' 버튼 클릭.

- 아래와 같이 정보 입력하여 등록 신청.

- 등록 완료 시 발급 되는 키 (Client ID, Client Secret) 이용하여 연동 진행.

## 작업 소스
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import kr.inflearn.ExcelVO;
public class Project03_D {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("책의 제목을 입력해주세요 : ");
String title = br.readLine();
System.out.print("책의 저자를 입력해주세요 : ");
String author = br.readLine();
System.out.print("출판사를 입력해주세요 : ");
String company = br.readLine();
ExcelVO vo = new ExcelVO(title, author, company);
getIsbnImage(vo);
} catch (Exception e) {
e.printStackTrace();
}
}
private static void getIsbnImage(ExcelVO vo) {
try {
String openApi = "https://openapi.naver.com/v1/search/book_adv.xml?d_titl="
+ URLEncoder.encode(vo.getTitle(), "UTF-8")
+ "&d_auth=" + URLEncoder.encode(vo.getAuthor(), "UTF-8")
+ "&d_publ="+ URLEncoder.encode(vo.getCompany(), "UTF-8");
URL url = new URL(openApi);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("X-Naver-Client-Id", "발급받은 Client_Id 입력");
con.setRequestProperty("X-Naver-Client-Secret", "발급받은 Client_Secret 입력");
int responseCode = con.getResponseCode();
BufferedReader br1 = null;
if (responseCode == 200) {
br1 = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
} else {
br1 = new BufferedReader(new InputStreamReader(con.getErrorStream()));
}
String inputLine = null;
StringBuffer response = new StringBuffer();
while ((inputLine = br1.readLine()) != null) {
response.append(inputLine);
}
br1.close();
// ISBN, IMAGE 정보 꺼내기
Document doc = Jsoup.parse(response.toString());
Element total = doc.select("total").first();
if (!total.text().equals("0")) {
Element isbn = doc.select("isbn").first();
String isbnStr = isbn.text();
String isbn_find = isbnStr.split(" ")[1];
vo.setIsbn(isbn_find);
String imgDoc = doc.toString();
String imgTag = imgDoc.substring(imgDoc.indexOf("<img>")+5);
String imgURL = imgTag.substring(0, imgTag.indexOf("?"));
System.out.println(imgURL);
String fileName = imgURL.substring(imgURL.lastIndexOf("/")+1);
System.out.println(fileName);
vo.setImageUrl(fileName);
System.out.println(vo);
} else {
System.out.println("검색된 데이터가 없습니다.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
## 출력 결과
- 도서 정보 입력 후 확인 시 아래와 같이 출력 되는것을 확인할 수 있다.

반응형
'인프런 강의 학습 > Java TPC 실전' 카테고리의 다른 글
Java iText API 활용 PDF table 만들기 (0) | 2022.07.25 |
---|---|
Naver Search API 활용 도서정보를 입력하여 검출 후 Excel에 저장하기 (0) | 2022.07.22 |
Naver Search API 활용 Excel에서 Cell의 데이터타입 알아보기 (0) | 2022.07.11 |
API활용_Naver Search API 활용 Excel에 image 저장하기 (0) | 2022.07.11 |
API활용_Naver Search API 활용 Excel파일 읽기 (0) | 2022.07.04 |