일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 머신러닝
- 직장인자기계발
- 에어플로
- 패스트캠퍼스
- airflow
- Ai
- 데이터 분석
- 데이터
- 상관분석
- 리뷰
- 자동매매프로그램
- 빅데이터
- 독서리뷰
- 분석
- 직장인인강
- 패캠챌린지
- 태국여행
- API
- 통계분석
- EDA
- 방콕여행
- Python
- 딥러닝
- correlation
- 파이썬
- 패스트캠퍼스후기
- 데이터분석
- 활성화함수
- 파이썬을활용한시계열데이터분석A-Z올인원패키지
- DAGs
- Today
- Total
데이터를 기반으로
네이버 뉴스 API 정리 본문
특정 키워드 관련 뉴스들을 모니터링 하기 위해 네이버 api 로 뉴스를 가져오는 방법을 소개하고자 한다.
https://developers.naver.com/main/
NAVER Developers
네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음
developers.naver.com
가장 먼저 할 일은 네이버에서 api 를 신청하는 것이다.
상기 페이지를 접속하면 뉴스 api 뿐만 아니라 다양한 기능들을 제공하는 걸 확인할 수 있다.
신청 방법은 구글에 굉장히 많은 자료들이 존재하기에 간단하게 말씀드리고 넘어가겠습니다.
신청해야할 api는 "검색" 이고 어플리케이션을 생성하면 된다.
참고로 "비로그인 오픈 API 서비스 환경"은 본인의 코드가 실행되는 환경(저는 로컬 주피터 노트북과 추후 자동화를 위해 구글 클라우드 플랫폼으로 지정)으로 설정해주면 된다.
API신청이 완료가 되면 'client id' 와 'client secret' 을 얻을 수 있게 된다.
셋팅은 완료가 되었다.
API 를 코드상에서 불러오고자 할 때 항상 페이지 설명글을 잘 읽어봐야한다.
요청변수가 무엇인지, 응답변수는 무엇인지 등 살펴봐야하는 것들이 많다.
https://developers.naver.com/docs/serviceapi/search/news/news.md#%EB%89%B4%EC%8A%A4
검색 > 뉴스 - Search API
검색 > 뉴스 뉴스 검색 개요 개요 검색 API와 뉴스 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수 있는 API입니다
developers.naver.com
뉴스 API에 해당하는 설명 페이지 링크이다.
요청 변수(=파라미터)들은 총 4가지 이지만, 필수 값은 'query'라는 1가지 이다.
import os
import sys
import urllib.request
import datetime
import time
import json
import pandas as pd
import datetime
import re
search_keyword = '1기 신도시'
# 네이버 검색 API
client_id = "본인의 client_id"
client_secret = "본인의 client_secret"
encText = urllib.parse.quote(str(search_keyword))
today = datetime.datetime.now().strftime('%Y-%m-%d')
# 테스트용 첫 페이지만 가져오기
url = "https://openapi.naver.com/v1/search/news.json?query=" + encText + "&start=" + str(1) + "&display=100"
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('request Success')
# print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
response_result = response_body.decode('utf-8')
response_result = json.loads(response_result)
위 코드 실행시 response_result 는 아래 결과와 같다.
해당 json을 DataFrame으로 변환 후 편하게 사용하면 될 것 같다.
'데이터 수집 > API' 카테고리의 다른 글
특정 키워드 뉴스 카카오톡 자동 발송 구축하기 - (1) (0) | 2024.03.29 |
---|---|
공공데이터 포털 약국 현황 API (0) | 2020.08.02 |
T-map API (2) | 2020.07.18 |