네이버 검색 api 활용
오픈api 활용서버
뉴스 검색 api
get /news?keyword=자동차 &limit=30
open restful open api를 호출할때 사용하는 라이브러리 → requests
이건 flask 에 들어있는 라이브러리 request랑 다르다
import requests
검색 > 뉴스 - 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