Python

Naver_API_JSON

2020. 6. 10. 11:43

Naver_API를 이용한 검색기(json)

import requests

책 검색 함수

def py_xml_proc_book(resp):
    book = resp.json()
    book_all = book['items']
    for book_one in book_all:
        title_b = book_one['title']
        title = title_b.replace('<b>','').replace('</b>','')
        price = book_one['price']
        discount = book_one['discount']
        print('* Title : {}'.format(title))
        print('* Price : {}'.format(price))
        print('* Discount : {}'.format(discount))
        print('*'*50)

블로그 검색 함수

def py_xml_proc_blog(resp):
    blog = resp.json()
    blog_all = blog['items']
    for blog_one in blog_all:
        blog_b = blog_one['title']
        blog = blog_b.replace('&lt;','').replace('&gt;','')
        bloggername = blog_one['bloggername']
        bloggerlink = blog_one['bloggerlink']
        print('* Title : {}'.format(title))
        print('* bloggername : {}'.format(bloggername))
        print('* bloggerlink : {}'.format(bloggerlink))
        print('*'*50)

뉴스 검색 함수

def py_xml_proc_news(resp):
    news = resp.json()
    news_all = news['items']
    for news_one in news_all:
        news_b = news_one['title']
        title = news_b.replace('&amp;','').replace('quot;','')
        originallink = news_one['originallink']
        link = news_one['link']
        print('* Title : {}'.format(title))
        print('* originallink : {}'.format(originallink))
        print('* link : {}'.format(link))
        print('*'*50)

쇼핑 검색 함수

def py_xml_proc_shop(resp):
    shop = resp.json()
    shop_all = shop['items']
    for shop_one in shop_all:
        shop_b = shop_one['title']
        title = shop_b.replace('&lt;','').replace('b&gt;','').replace('<b>','').replace('</b>','')
        productType = shop_one['productType']
        if productType == '1' or productType == '2' or productType == '3':
            productType = '일반상품'
        elif productType == '4' or productType == '5' or productType == '6':
            productType = '중고상품'
        elif productType == '7' or productType == '8' or productType == '9':
            productType = '단종상품'
        else:
            productType = '판매예정상품'

        maker = shop_one['maker']
        brand = shop_one['brand']
        lprice = shop_one['lprice']
        hprice = shop_one['hprice']
        print('* Title : {}'.format(title))
        print('* productType : {}'.format(productType))
        print('* maker : {}'.format(maker))
        print('* brand : {}'.format(brand))
        print('* lprice : {}'.format(lprice))
        print('* hprice : {}'.format(hprice))
        print('*'*50)
def naver_search_json(number, query, display, start, sort):

    search_kind = ['book', 'blog', 'news', 'shop']

    client_id = '__user id__'
    client_secret = '__user secret__'

    url = 'https://openapi.naver.com/v1/search/{}.json'.format(search_kind[number-1])
    params = {'query':query, 'display':display, 'start':start, 'sort':sort}
    headers = {
        'X-Naver-Client-Id':client_id, 'X-Naver-Client-Secret':client_secret
    }
    response = requests.get(url, headers=headers, params=params)

    # 항목 추가되면 elif문 추가 할 것
    if response.status_code == 200 and number == 1:
        py_xml_proc_book(response)
    elif response.status_code == 200 and number == 2:
        py_xml_proc_blog(response)
    elif response.status_code == 200 and number == 3:
        py_xml_proc_news(response)
    elif response.status_code == 200 and number == 4:
        py_xml_proc_shop(response)
    else:
        print(response.status_code)
def app():
    prompt = '''
        1. Book Search
        2. Blog Search
        3. News Search
        4. Shopping Search
        5. Quit
    '''
    number = 0
    while True:
        print(prompt)
        number = int(input())
        if number == 5:
            print('안녕히가세요.')
            break
        query = input('검색어를 넣으세요 >')
        display = 10
        start = 1
        sort = 'date'
        naver_search_json(number, query, display, start, sort)
app()
        1. Book Search
        2. Blog Search
        3. News Search
        4. Shopping Search
        5. Quit

1
검색어를 넣으세요 >python
Step by Step 파이썬 비즈니스 통계분석 32000 28800
**************************************************
The Definitive Guide to Masonite: Building Web Applications with Python 58880 
**************************************************
Pythonハッカ-ガイドブック (達人が敎えるデプロイ,スケ-ラビリティ,テストのコツ) 42270 41910
**************************************************
仕事を自動化する!Python入門講座 33880 33590
**************************************************
Pythonによるアルゴリズムとデ-タ構 40060 40060
**************************************************
딥러닝 머신러닝을 위한 파이썬 넘파이 (선형대수를 파이썬으로 이해하기) 35000 31500
**************************************************
Tello Edu 드론코딩 A to Z 18000 16200
**************************************************
비즈니스 머신러닝 in 파이썬(Step by Step) 32000 28800
**************************************************
나만의 스마트워크 환경 만들기 (파이썬으로 만드는 업무 자동화 프로그램) 27500 24750
**************************************************
まんが版 こんにちはPython 23110 23110
**************************************************

        1. Book Search
        2. Blog Search
        3. News Search
        4. Shopping Search
        5. Quit

4
검색어를 넣으세요 >러닝화
아디다스 여성 리스폰스 수퍼 런닝화(FX4835) 일반상품  아디다스 67940 0
**************************************************
아키클래식 [아키클래식] 운동화 고스트 화이트핑크 AKAHAUW0909 어글리슈즈 키높이운동화 일반상품  아키클래식 49210 0
**************************************************
데상트 데상트운동화 데상트신발 공용 몬스터랩  2종 택1 S9129LCR15 일반상품 데상트코리아 데상트 134830 0
**************************************************
데상트 데상트운동화 데상트신발 공용 에너자이트  5종 택1 S9129RRN34 일반상품 데상트코리아 데상트 146560 0
**************************************************
데상트골프 [데상트 골프] 데상트운동화 데상트신발 공용 리퀴드 와이어  3종 택1 S9129RRN15 일반상품  데상트골프 114040 0
**************************************************
나이키 나이키/아동운동화/에어맥스 엑시스 GS (AH5222-001)N 일반상품 나이키 나이키 73040 0
**************************************************
아디다스 아디다스 듀라모 SL FV8787 일반상품  아디다스 66930 0
**************************************************
데상트골프 [데상트 골프] 데상트운동화 데상트신발 공용 시티 점프  3종 택1 S9129LCR21 일반상품  데상트골프 83660 0
**************************************************
아디다스 아디다스 애즈위런 2.0 런닝화 FW1691 일반상품 아디다스 아디다스 57230 0
**************************************************
데상트골프 [데상트 골프] 데상트운동화 데상트신발 공용 쉘레타 2.0  3종 택1 S9229ECR41 일반상품  데상트골프 73040 0
**************************************************

        1. Book Search
        2. Blog Search
        3. News Search
        4. Shopping Search
        5. Quit

5
안녕히가세요.