네이버 검색 API 사용하기

허재정·2024년 3월 18일
0

EDA

목록 보기
11/13

1. 네이버 API 사용 등록

2. 네이버 검색 API 사용

네이버 검색 open API 예제 - 블로그 검색

https://developers.naver.com/docs/serviceapi/search/blog/blog.md#python

  • urllib : http 프로토콜에 따라서 서버의 요청/응답을 처리하기 위한 모듈
  • urllib.request : 웹서버에 웹페이지 요청하고 응답받기 위해 일반적으로ㅗ 브라우저 사용. 클라이언트의 요청을 처리하는 모듈
  • urllib.response : 서버의 응답을 처리
  • urllib.parse : URL 주소에 대한 분석
    import os
    import sys
    import urllib.request

    client_id = "My_Client_ID"
    client_secret = "My_Client_SECRET"
    
    # request url 생성
    # 한글을 URL에 추가하기 위해서  UTF-8 형식으로 URL인코딩
    encText = urllib.parse.quote("파이썬")
	# JSON 요청 URL (여기서/search/blog?query  하면 blog,  책이면 book, 카페면 cafe, 쇼핑이면 shopping, 백과사전이면 encyc 대체해서 넣기)
    url = "https://openapi.naver.com/v1/search/blog?query=" + encText
    # encText에 이어 + "&display=3&sort=count" 를 붙여 (따옴표 포함  요청 URL + 요청 변수 보여주기.  naver api사이트에서 확인가능)
	# XML 요청 URL  (여기서/search/blog?query  하면 blog,  책이면 book, 카페면 cafe, 쇼핑이면 shopping, 백과사전이면 encyc 대체해서 넣기)
     url = "https://openapi.naver.com/v1/search/blog.xml?query=" + encText
    
    # REQUEST 객체 (URL요청과 관련된 정보를 담는 추상화된 클래스) 생성 및 Header 추가.  add_header 메소드로 헤더정보 추가.  네이버 API 사용하려면 클라이언트 정보를 헤더에 포함시켜야 함
    request = urllib.request.Request(url)
    request.add_header("X-Naver-Client-Id",client_id)
    request.add_header("X-Naver-Client-Secret",client_secret)
    
    # urlopen 및 response 획득 (url string 혹은 request객체를 전달 받음.  header 정보 포함한 request 객체 전달)
    response = urllib.request.urlopen(request)
    rescode = response.getcode() # response의 HTTP status code를 리턴
    
    # HTTP status code 확인 및 response 데이터 디코딩
    # getcode 메서드 통해 response의  HTTP status code 확인
    if(rescode==200):
        response_body = response.read()
        print(response_body.decode('utf-8')) 
    else: # 네이버 오픈 API 에러 코드 목록
  		print("Error Code:" + rescode)
  • 다른 카테고리 검색시 위에서 url만 바꿀것
    예) 책 : book
    카페 : cafe
    쇼핑 : shop
    백과사정 : encyc
    url = "https://openapi.naver.com/v1/search/<검색카테고리>?query=" + encText
https://developers.naver.com/docs/serviceapi/search/book/book.md
  • JSON 형식의 결과 데이터는 json.loads() 메소드로 파이썬에서 활용 가능한 객체 (예: dict)로 변환하여 사용함
import json
json_rt = response.read().decode('utf-8')
  py_rt = json.loads(json_rt)

==========================================

profile
Data Science 스터디로그

0개의 댓글