본문 바로가기

Python/실습

[REST API: requests] 네이버 개발자 등록 / Naver Papago API / 번역 API

네이버 개발자에서 어플리케이션 등록

  • Papago 번역 API 추가
  • 비로그인 오픈 API 서비스 환경: WEB설정 -> http://localhost.com

client ID 와 Secret

 

기본 예제

https://developers.naver.com/docs/papago/papago-nmt-example-code.md#python

 

https://developers.naver.com/docs/papago/papago-nmt-example-code.md#python

 

developers.naver.com

import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID" # 개발자센터에서 발급받은 Client ID 값
client_secret = "YOUR_CLIENT_SECRET" # 개발자센터에서 발급받은 Client Secret 값
encText = urllib.parse.quote("반갑습니다")
data = "source=ko&target=en&text=" + encText
url = "https://openapi.naver.com/v1/papago/n2mt"
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, data=data.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
    response_body = response.read()
    print(response_body.decode('utf-8'))
else:
    print("Error Code:" + rescode)

 

메모장 내용 번역

메모장(.txt)의 한글 -> 영어로 번역해보자

import os
import sys
import urllib.request
import json # json

client_id = "" # 개발자센터에서 발급받은 Client ID 값
client_secret = "" # 개발자센터에서 발급받은 Client Secret 값

# 텍스트 파일 불러오기
with open('source.txt', 'r', encoding='utf8') as f:
    srcText = f.read()

encText = urllib.parse.quote(srcText)
data = "source=ko&target=en&text=" + encText
url = "https://openapi.naver.com/v1/papago/n2mt"
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, data=data.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
    response_body = response.read()
    #print(response_body.decode('utf-8'))

    # json 형 변환
    res = json.loads(response_body.decode('utf-8'))
    from pprint import pprint
    pprint(res)

    # translate.txt 파일에 쓰기
    with open('translate.txt', 'w', encoding='utf8') as f:
        f.write(res['message']['result']['translatedText'])

else:
    print("Error Code:" + rescode)

 

참고

https://wikidocs.net/35983

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net