본문 바로가기
프로그래밍/네이버 API

[네이버 API][Python] 네이버 뉴스를 가져오기 위해 네이버 검색 API 사용해보기 (1)

by 빛밤하늘 2021. 4. 20.
반응형

한라열쇠 웹페이지에서 네이버 검색 API를 사용하여 열쇠와 디지털 도어락 등

열쇠와 관련된 키워드에 관한 뉴스들을 가져오는 기능을 개발하고자 합니다.

 

먼저 이번 포스팅에서는 네이버에 개발자와 애플리케이션 등록 및 네이버 뉴스 API와 파이썬으로

원하는 키워드에 따른 뉴스들을 출력해봤던 과정을 올려봅니다.

 

참고로 뉴스뿐만 아니라 다른 서비스에 대한 검색 API도 지원합니다.

뉴스뿐만 아니라 다른 서비스들의 검색 API 제공
뉴스뿐만 아니라 다른 서비스들의 검색 API 제공

 

 

밑의 링크는 네이버의 검색 API 페이지입니다.

 

검색 API 뉴스 검색 개발가이드

NAVER Developers - 검색 API 뉴스 검색 개발가이드

developers.naver.com

 

 

네이버 검색 API를 사용하기 전에 먼저 오픈 API 이용 신청을 해야 합니다.

밑의 빨간 네모를 클릭합니다.

네이버 서비스 API의 검색 > 뉴스 탭에서 먼저 오픈 API 이용 신청을 권함
네이버 서비스 API의 검색 > 뉴스 탭에서 먼저 오픈 API 이용 신청을 권함

 

오픈 API 이용 신청 버튼을 클릭하면 밑의 화면으로 이동합니다.

API 이용약관에 동의한 후, 확인 버튼을 누릅니다.

API 이용약관 동의 후 확인
API 이용약관 동의 후 확인

 

계정 정보 등록 페이지로 이동했습니다.

자신의 휴대폰을 인증하고, 회사 이름 (선택) 탭에서 체크 표시를 한 후 확인 버튼을 누릅니다.

회사 이름은 굳이 안 적어도 됩니다.

휴대폰 인증이 필요함
휴대폰 인증이 필요함

애플리케이션 이름, 사용 API, 비로그인 오픈 API 서비스 환경의 각 항목을 채우고 등록하기 버튼을 누릅니다.

네이버 검색 API를 사용하고자 하는 애플리케이션 등록
네이버 검색 API를 사용하고자 하는 애플리케이션 등록

 

그러면 네이버 검색 API를 사용할 때 필요한 Client ID와 Client Secret 값을 확인할 수 있습니다.

개인마다 주어지는 값이므로 공개되면 안 됩니다.

네이버 검색 API를 사용할 때 필요한 Client ID, Client Secret 확인
네이버 검색 API를 사용할 때 필요한 Client ID, Client Secret 확인

 

 

네이버 검색 API에서는 블로그 검색만 대표로 예제를 올려줬습니다.

저는 뉴스 검색 API를 사용할 것이므로 빨간 밑줄의 blog만 news로 바꿔주면 됩니다.

파이썬으로 작성된 블로그 검색 API 예제
파이썬으로 작성된 블로그 검색 API 예제

저는 "코로나" 키워드로 뉴스들을 불러봤습니다.

# import os
# import sys
# 위 두 import는 굳이 필요없음

import urllib.request
client_id = "발급받은 값"
client_secret = "발급받은 값"
encText = urllib.parse.quote("코로나") # 검색할 키워드

url = "https://openapi.naver.com/v1/search/news?query=" + encText # json 결과가 필요할 때 사용
# url = "https://openapi.naver.com/v1/search/news.xml?query=" + encText # xml 결과가 필요할 때 사용

request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id", client_id)
request.add_header("X-Naver-Client-Secret", client_secret)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode == 200):
    response_body = response.read()
    print(response_body.decode('utf-8'))
else:
    print("Error Code:" + rescode)

코로나 키워드로 검색한 뉴스 검색 결과
코로나 키워드로 검색한 뉴스 검색 결과

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

반응형

댓글