1. 네이버, 페이스북, 구글 등 거대 IT기업들부터 많은 S/W회사들이 자사 제품을 API의 형태로 제공한다. 특히 요즘에는 더더욱 웹크롤링에 대한 방어가 심해지고 있기 때문에, 해당 회사의 API를 사용하는 것이 오히려 더 바람직할 수 있다. 점검 API의 사용에 익숙해질 필요성 또한 있을 것이다.
2. 이번에는 네이버 API 사용 방법을 익힌다. 먼저 아래의 링크에 들어간다.
https://developers.naver.com/main/
NAVER Developers
네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음
developers.naver.com
3. 로그인한 후, 서비스 API를 선택한다.
https://developers.naver.com/products/service-api/datalab/datalab.md
데이터랩 - SERVICE-API
데이터랩 통합검색어 트렌드 통합검색어 트렌드는 네이버 통합검색에서 발생하는 검색어를 연령별, 성별, 기기별(PC, 모바일)로 세분화해서 조회할 수 있는 API입니다. 분석하고 싶은 주제군을
developers.naver.com
4. 위 링크에 들어가 아래로 스크롤을 좀 내려 보면, 오픈API 이용 신청이라는 버튼이 있다. 클릭 후 아래와 같이 애플리케이션 이름을 임의로 넣어 주고, '검색', '데이터랩(검색어트렌드)', '데이터랩(쇼핑인사이트)'를 클릭한다. 캡차는 한번 해보고 싶어서 임의로 추가해봤다.

5. 비로그인환경 추가는 Web설정, 웹서이브 url은 http://localhost로 임의로 지정해줬다.

6. 그러면 아래와 같은 창이 뜬다. Client ID와 Client Secret을 기억해둔다.

7. 일일 사용량도 정해져있다.
** 과거에는 Clova Face Recognition도 사용가능했지만, 올해 1월부터 어떤 공지 없이 갑자기 Naver Developer 페이지에서 사라졌다. CLOVA 페이지를 들어가도 face recognition api 사용법에 대한 html 도큐먼트만이 아카이브처럼 남아있을 뿐이다.

8. 상단의 Documents 탭을 눌러 개발 가이드를 확인한다. '검색'란의 개발 가이드에 맞춰 간단한 테스트를 해볼 것이다.
https://developers.naver.com/docs/serviceapi/search/blog/blog.md#%EB%B8%94%EB%A1%9C%EA%B7%B8
검색 > 블로그 - Search API
검색 > 블로그 블로그 검색 개요 개요 검색 API와 블로그 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수 있는 API
developers.naver.com
9. 아래는 네이버 측에서 '검색' API에 대해 제공하는 파이썬 가이드이다. 이 코드를 활용해보자.

10. 또한 API 기본 정보 항목에 보면 요청 URL이 있다. 웹 API는 이 경로를 이용한다.

11. 9번에서 복사한 코드를 jupyter에 붙여넣기해준다. client id와 client secret은 6번에서 복사한 str을 붙여넣기해준다.

urllib: http 프로토콜에 따라서 서버의 요청/응답을 처리하기 위한 모듈
urllib.request: 클라이언트의 요청을 처리하는 모듈
urllib.parse: url주소에 대한 분석
encText는 urllib.parse.quote()함수를 통해 한글 등의 입력어를 인코딩하여 저장한다. 이는 검색 url의 쿼리 부분이 된다.
url + encText는 결과적으로 완성되는 네이버 검색 url이다.
request.add_header()부분은 오타가 자주 발생하는 부분으로, 복사 붙여넣기로 사용하는 것이 좋다.



12. 11번 코드의 아래 부분이 이를 나타낸다. rescode(response.getcode())값이 200(정상)이라면 검색 API로 받아온 글자를 표시하라는 것이다. response.read()로 글자를 읽어들일 때는 .decode()로 'utf-8'을 설정해줘야 한다.
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
13. 이번에는 간단한 url 쿼리 수정으로 blog 검색이 아니라 책 검색을 해보자. 11번 코드에서 아래 부분만 수정해본다.
url = "https://openapi.naver.com/v1/search/book?query=" + encText # blog에서 book으로

14. 간단한 쿼리 수정으로도 잘 받아오는 것을 알았으니, 이번엔 카페 검색결과를 받아와보자. 마찬가지로 쿼리의 book 부분만 cafearticle로 수정해주면 된다.
url = "https://openapi.naver.com/v1/search/cafearticle?query=" + encText # book에서 cafearticle로

15. 이번엔 네이버 쇼핑 검색결과를 받아와보자. 마찬가지로 쿼리의 cafearticle 부분만 shop으로 수정해주면 된다.
url = "https://openapi.naver.com/v1/search/shop?query=" + encText # cafearticle에서 shop으로

16. 이번엔 네이버 백과사전 검색결과를 받아와보자. 마찬가지로 쿼리의 shop 부분만 encyc으로 수정해주면 된다.
url = "https://openapi.naver.com/v1/search/encyc?query=" + encText # shop에서 encyc으로

네이버 검색 API를 설정하고 기초적인 검색 기능을 사용하여 검색 결과를 받아오는 것까지 했다. 이제 다음 게시글에서는 받아온 데이터를 활용해보자.
'데이터분석 > 미니프로젝트 05. Naver API 활용' 카테고리의 다른 글
| 05-02. Naver API에서 모은 원피스 데이터 정리하고 시각화하기 (1) | 2024.04.21 |
|---|