도서 api 비교하는 블로그: https://myunji.tistory.com/m/472,

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

네이버 책 api: https://developers.naver.com/docs/serviceapi/search/book/book.md#책

To do list

  1. 어떤 책 api를 사용할지 결정(플랫폼에 따라 db가 변경될 수 있음)
  2. 결정된 api를 사용하여 db에 필요한 데이터를 전처리하기 → 네이버 API

To do

참고:https://velog.io/@hyungjin1124/네이버-검색-API-서비스

필요한 쿼리

요청변수 설명
title string 검색 결과 문서의 제목을 나타낸다. 제목에서 검색어와 일치하는 부분은 태그로 감싸져 있다.
link string 검색 결과 문서의 하이퍼텍스트 link를 나타낸다.
image string 썸네일 이미지의 URL이다. 이미지가 있는 경우만 나타납니다.
author string 저자 정보이다.
isbn integer ISBN 넘버이다.
description string 검색 결과 문서의 내용을 요약한 패시지 정보이다. 문서 전체의 내용은 link를 따라가면 읽을 수 있다. 패시지에서 검색어와 일치하는 부분은 태그로 감싸져 있다.
pubdate string 출간일 정보이다.

book.csv

from urllib.request import Request, urlopen
from urllib.parse import urlencode, quote
import json
import re
import numpy as np # numpy 도 함께 import
import pandas as pd
from pandas.io.json import json_normalize

CLIENT_ID = 'WJrpU82XlHCQo14O0dSu'
CLIENT_SECRET = '8klUUYm3mk'

df = pd.DataFrame(columns=['Title','Link','Image','Author','Isbn','Description','Pubdate'])

start = 1
end = 1000
display = 100
idx = 0
sort='sim'
query = urllib.parse.quote('컴퓨터/IT')
for start_idx in range(start,end,display):

#request객체 생성 및 header 추가
    url = '<https://openapi.naver.com/v1/search/book?query=>' + query + \\
        "&display=" + str(display) + \\
        "&start=" + str(start_idx) + \\
        "&sort=" + sort

    request = Request(url)
    request.add_header('X-Naver-Client-Id', CLIENT_ID)
    request.add_header('X-Naver-Client-Secret', CLIENT_SECRET)

    response = urlopen(request)
    response_code = response.getcode()

    if (response_code == 200):
        response_body = response.read().decode('utf-8')
        books = json.loads(response_body)['items']
        remove_tag = re.compile('<.*?>')

        for book_index in range(0,len(books)):
            title = re.sub(remove_tag, '',books[book_index]['title'])
            link = books[book_index]['link']
            image = books[book_index]['image']
            author = books[book_index]['author'].replace('^',',')
            isbn = int(books[book_index]['isbn'])
            description = re.sub(remove_tag, '',books[book_index]['description'])
            pubdate = books[book_index]['pubdate']

            df.loc[idx] = [title,link,image,author,isbn,description,pubdate]
            idx += 1

#search_book('컴퓨터/IT')

df.to_csv('/Users/gitak/Documents/techl/book5.csv', encoding='cp949')

print(df.dtypes)