Api 개발/flask

네이버 검색 api 활용

공부짱짱열심히하기 2023. 1. 13. 15:03

오픈api 활용서버

 

뉴스 검색 api

get /news?keyword=자동차 &limit=30

 

 

 

open restful open api를 호출할때 사용하는 라이브러리 → requests
 이건 flask 에 들어있는 라이브러리 request랑 다르다

import requests

       

 

https://developers.naver.com/docs/serviceapi/search/news/news.md#%EB%89%B4%EC%8A%A4-%EA%B2%80%EC%83%89-api-%EB%A0%88%ED%8D%BC%EB%9F%B0%EC%8A%A4

 

검색 > 뉴스 - Search API

검색 > 뉴스 뉴스 검색 개요 개요 검색 API와 뉴스 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 영화, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수 있는 API

developers.naver.com

requests.get('https://openapi.naver.com/v1/search/news.json')

 

        keyword = request.args.get('keyword')
        limit = request.args.get('limit')
플라스크 리퀘스트를 통해 파라미터값을 변수로지정


data = {'query' : keyword , 'display' : limit   }
이건 리퀘스츠

 

 headers = { 'X-Naver-Client-Id' : Config.NAVER_CLIENT_ID,
                'X-Naver-Client-Secret' : Config.NAVER_CLIENT_SECRET  }

config에서 키 관리

 

만든거 합성

 response = requests.get('https://openapi.naver.com/v1/search/news.json', data ,headers= headers)
 response = response.json()

포스트맨에서 send해보고 나온값

 

https://jsoneditoronline.org/#left=local.zacuxe&right=local.fuxivu

 

JSON Editor Online: JSON editor, JSON formatter, query JSON

You need to enable JavaScript to run this app. JSON Editor Online JSON Editor Online is a web-based tool to view, edit, format, repair, compare, query, transform, validate, and share your JSON data. About JSON Editor Online JSON Editor Online is a versatil

jsoneditoronline.org

해석

응답 : 뉴스의 제목만 보내준다.

result, items :

 

items 이름은 title, descript등등

        title_list = []
        for row in response['items'] :
            row['title']
            title_list.append(row['title'])

제목만 호출 가능

 

class NaverSearchResource(Resource) :

    def get(self) :

        keyword = request.args.get('keyword')
        limit = request.args.get('limit')

        ## 네이버 API를 호출

        ### open restful open api를 호출할때 사용하는 라이브러리 → requests
        
        data = {'query' : keyword , 'display' : limit   }
        headers = { 'X-Naver-Client-Id' : Config.NAVER_CLIENT_ID,
                'X-Naver-Client-Secret' : Config.NAVER_CLIENT_SECRET  }

        response = requests.get('https://openapi.naver.com/v1/search/news.json', data ,headers= headers)
        

        response = response.json()
        print(response)

        #response['items']

        title_list = []
        for row in response['items'] :
            row['title']
            title_list.append(row['title'])

        return{'result' :  'success'  ,
                'items' : title_list},200