working_helen

[데이터 수집] 도서 데이터, 카카오 API 본문

deep daiv./추천시스템 project

[데이터 수집] 도서 데이터, 카카오 API

HaeWon_Seo 2023. 9. 5. 22:33

데이터 수집 단계에서 접한 다양한 도서 데이터와 Kakao Developers에 대해 공부해본다.

 

1. 국립중앙도서관 데이터

2. Kakao Developers

 


1. 국립중앙도서관 데이터

1) 국가서지 LOD

- 국립중앙도서관에서 제공하는 공공 데이터 개방 서비스 중 하나

- 서지 및 주제명, 저자명과 전국의 도서관 정보 등 데이터를 JSON , RDF/XML , Turtle , N3 , nTriples 5가지 형식으로 제공한다.

 

국립중앙도서관 LINKED OPEN DATA

01 서비스 소개 국립중앙도서관은 국가대표도서관으로 저작물을 수집하여 영구보존합니다. 이 과정에서 정보자원의 관리와 보존, 서비스를 위해 MARC 형태의 목록 정보와 저자 전거, 주제 전거를

lod.nl.go.kr

 

 

 

2) 사서지원서비스

 

- 대한민국 국가서지 데이터 + 국가전거 검색 서비스를 제공한다.

 

※ 국가서지 / 국가전거

국가서지란 특정 국가에서 간행된 모든 출판물의 서지정보를 종합적으로 수록한 목록 국립중앙도서관은 「도서관법」제20조 제1항 제3호에 따라 ‘국가 서지 작성 및 표준화’를 시행하는 국가 대표 기관으로 대한민국 국가서지 작성 및 발간뿐만 아니라, 국내 도서 관계의 서지 표준화에 앞장서고 있다.
전거란 표목으로 사용된 이름(개인명, 단체명, 회의명, 지리명, 표제명과 주제명 등)의 형식을 일관되게 유지하여 동종의 자료를 모으고 이종의 자료를 식별 하는 것이다. 국립중앙도서관은 구축한 국가전거데이터를 공개하고 이를 활용한 다양한 검색서비스를 제공하고 있다.
- 국립중앙도서관 사서지원서비스 (https://librarian.nl.go.kr/LI/contents/L40102010000.do) -
 

사서지원서비스

사서지원서비스에 오신 것을 환영합니다

librarian.nl.go.kr

 


3) 도서관 정보 나루

 

도서관 빅데이터를 개방 및 공유하여 활용할 수 있도록 지원하는 서비스

- 전국 공공도서관에서 회원·장서·대출 데이터 수집

→ 기간별/지역별/성별/연령별 대출 장서, 전국 공공 도서관 주요 현황, 대출도서 순위, 이달의 키워드 등

    다양하게 세분화된 데이터 및 데이터 대시보드를 제공한다.

 

도서관 정보나루

전국 서울 부산 대구 인천 광주 대전 울산 세종 경기 강원 충북 충남 전북 전남 경북 경남 제주 전체 영유아(0~5) 유아(6~7) 초등(8~13) 청소년(14~19) 20대 30대 40대 50대 60대 이상 전체 영유아(남) 영유

www.data4library.kr

 

 

 

2. Kakao Developers

1) 서비스 개요

- 카카오 API 플랫폼, 카카오 서비스와 연계된 다양한 오픈 API와 개발 도구 공개
- 웹사이트에서 카카오 API를 이용한 다양한 서비스 구현시 다양한 기능을 지원받을 수 있다.


- Kakao Developers 제공 API 목록

 

  • 소셜통합 API
    : 카카오 로그인, 카카오톡 소셜, 메시지, 톡캘린더, 지도/로컬, 카카오내비, 카카오스토리
  • 비즈니스 API
    : 카카오싱크, 카카오톡 채널, 카카오페이, 카카오모먼트, 카카오 키워드광고, 푸시 알림
  • 인공지능 API
    : 검색, KoGPT, Karlo
 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

2) Daum 검색 API
: Daum 웹 문서, 동영상, 이미지, 블로그, 책, 카페를 검색하는 기능을 제공

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

3) requests로 도서 정보 불러오기

 

requests 라이브러리

- python에서 사용하는 HTTP 클라이언트 라이브러리, 쉽게 http 요청을 처리할 수 있다.

- 어떤 방식의 HTTP 요청을 하느냐에 따라 get / post / put / delete 등에서 함수 선택한다.

 

requests.get(url, params={key: value}, ,,,)

 

  • url : HTTP 요청 url
  • params : query string으로 보낼 dictionary, tuple, bytes 목록
  • headers : 지정 url로 보낼 HTTP 헤더 dictionary, 응답에 대한 메타 데이터를 주고 받기위해 사용
  • 기타 파라미터 : allow_redirects  / auth cert / cookies / proxies / stream / timeout / verify
    (파라미터 관련 설명 : https://homzzang.com/b/py-87)

- 지정 url로 get 요청을 보냄 → 요청을 받은 서버는 요구되는 작업 수행 → 요청자에게 response 전달

- get 함수를 이용하는 경우 query string으로 응답받을 데이터를 필터링하는 경우가 많은데, 이때 params 파라미터를 이용해 query string을 전달할 수 있다.

 

 

프로젝트에서 진행한 kakao developers의 도서 검색 API를 활용하는 코드

import requests

rest_api_key = "발급받은 API 키"
url = "https://dapi.kakao.com/v3/search/book"


#헤더 : 인증 방식은 API 키로 인증 요청
header = {"authorization": "KakaoAK "+ rest_api_key}

#쿼리 파라미터 : 궁금한 도서의 isbn
querynum = {"query": "9788952791160"}


#도서 정보 불러오기
##응답 전문
response = requests.get(url, headers=header, params = querynum)

##응답전문의 바이너리 원문 추출
response.content

##응답전문에서 UTF-8로 인코딩된 문자열 추출
response.text

 

 

 

 

 

Reference

https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-book

https://hotel-iu.tistory.com/303
https://www.daleseo.com/python-requests/
https://homzzang.com/b/py-87