네이버의 뉴스 검색 open 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
1. 네이버 API 에 애플리케이션 등록
네이버 api 를 이용하기 위해서는 먼저 애플리케이션 등록을 해야한다.

애플리케이션 등록 (API) 이용 신청은 아래처럼 하였다.
파이썬 코드를 이용하여서 개발할 것이기 때문에 환경은 web 으로 설정하였고, 로컬에서 코드를 돌려서 테스트 할 것이기 때문에 웹서비스 url 은 localhost:5000 으로 설정하였다.
- 사용 API : 검색
- 환경 : WEB
- 웹 서비스 URL : localhost:5000

필요한 항목들을 모두 설정하고 나면, 오픈 API 활용에 필요한 Client ID 와 Client Secret 키를 발급해준다.
Client ID 와 Client Secret 키는 노출되면 않도록 조심하여야 한다.

2. 코드 작성 전 네이버 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
위 사이트에서 코드 작성에 필요한 데이터를 확인할 것이다.
먼저 우리가 필요한 데이터는 요청 URL 과 HTTP 메서드이다.
requests 라이브러리를 이용하여 GET 으로 요청 URL 을 가져와야한다.
( Restful OPEN API 를 호출할 때 사용하는 라이브러리 : requests 라이브러리 )

필요한 데이터를 딕셔너리에 넣어서 요청해야 하기 때문에 파라미터도 잘 봐야한다.

헤더에 넣어야 하는 값은 Client-id 값과 Client-Secret 값이다.

헤더에 클라이언트 아이디와 시크릿값말고 다른 값이 들어가는 경우도 있다.
어떤 데이터가 들어가는지 헷갈릴때는 요청 예를 확인하면 된다.
- H 가 헤더라는 의미이다.
- H 가 붙은 데이터들을 헤더값에 딕셔너리 형태로 넣어줘야한다.

3. Postman 설정
- 자동차라고 검색한 뉴스 기사 데이터를 30개만 가져올 것이다.
- 포스트맨에서 Query Parms - KEY 값에 검색할 데이터와 가져올 데이터 수를 지정하였다.
- keyword : '자동차'
- limit : 30

4. 코드 작성
- Restful open Api 를 호출할 때 사용하는 라이브러리 => requests 라이브러리
- requests.get 으로 API 를 호출한다.
- 여기서 get 인 이유는 네이버에서 지정해준 HTTP 메서드가 GET 이였기 때문이다.
- 변수 data 와 headers 에 필요한 데이터를 딕셔너리 형태로 넣어준다.
- data : 네이버에서 지정해준 파라미터 값
- headers : 네이버에서 헤더값으로는 시크릿 아이디와 시크릿 키만 넣으라고 했기 때문에 시크릿 아이디와 키 값만 넣으면 된다.
- 요청한 api 결과 데이터를 response 변수에 저장하였다. 우리가 원하는 데이터로 가져오기 위해서 .json() 을 해주어야한다.
- response.json()
- return 값으로는 가져오고자 하는 데이터를 억세스 하면 된다. ( 뉴스 기사의 title 만 가져오도록 하였다. )
- 리턴되는 값이 json 형식이라서 데이터 억세스 하기가 힘들다면, json editor online 사이트를 이용하면 된다.
- https://jsoneditoronline.org/#right=local.hosere&left=local.moqomi
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
class NaverSearchResource(Resource) :
def get(self) :
keyword = request.args.get('keyword')
limit = request.args.get('limit')
## 네이버 API 호출
#### 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}
# 요청 URL, 보낼데이터, 헤더정보
response = requests.get('https://openapi.naver.com/v1/search/news.json', data, headers = headers)
# json 형태로 데이터를 변경해줌
response = response.json()
title_list = []
for row in response['items'] :
title_list.append(row['title'])
return {'result' : 'success', 'items' : title_list}, 200
5. postman 으로 결과값 확인

'Flask' 카테고리의 다른 글
| REST API / RESTful API 차이점 (0) | 2023.04.19 |
|---|---|
| 네이버의 Papago Open API 이용하기 (0) | 2023.01.13 |
| 이미지 파일과 내용을 올리면 DB 에 저장하는 API (0) | 2023.01.13 |
| 종속성이 있는 라이브러리를 lambda layer 로 만드는 방법 (0) | 2023.01.12 |
| S3 에 저장돼 있는 이미지를 객체 탐지 하는 API - Amazon Rekognition (0) | 2023.01.12 |