카테고리 없음

Web Crwaling ③ - 네이버 API

민주82 2023. 2. 20. 00:15

 

☆과도한 웹크롤링은 지양해야 한다★

API는 데이터를 가지고 있는 업체에서 데이터를 가져갈 수 있도록 하는 서비스라서 조금은 맘 편하게 할 수 있다...!

 


 

 

파파고 번역 API

 

 

 

https://developers.naver.com/main/

 

NAVER Developers

네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음

developers.naver.com

 

사이트 접속후 네이버 로그인을 한다

 

 

Application - 애플리케이션 등록 

 

 

 

 

어플리케이션 이름과 웹 서비스 URL은 하고 싶은대로 정하면 된다

하지만 사용 API에 파파고 번역과 앞으로 진행할 데이터랩(검색어 트렌드)는 꼭 추가할 것 !!

 

잘 진행되었다면 등록하기 후  app_key 획득할 수 있다 :)

(CLIENT_ID, CLIENT_SECRET 이 주어진다)

 

 

 

import pandas as pd
import requests, json

CLIENT_ID, CLIENT_SECRET = "ID값 넣으세요", "SECRET값 넣으세요"

위에서 받은 ID, SECRET 값을 입력하면 된다

 

 

 

 

 

 

1 → 2 → API레퍼런스

 

 

Request URL

 

 

 

메서드가 POST형식이고 세가지 파라미터들이 필요하다는 것을 알 수 있다

 

 

 

 

 

 

파라미터 지정할 때 참고할 내용

 

 

 

 

header에 들어가야하는 내용

 

 

이전 웹크롤링 게시물들과 동일하게

 

1. API문서 : URL

2. requests(URL,key,ko_txt) > response : json(str)

3. json(str) : en_txt

 

이러한 순서로 진행할 것이다 :)

# 1. API문서 : URL
ko_txt = '웹크롤링은 재미있습니다.'
url = "https://openapi.naver.com/v1/papago/n2mt" 
headers = {
    'Content-Type': 'application/json',
    'X-Naver-Client-Id' : CLIENT_ID,
    'X-Naver-Client-Secret' : CLIENT_SECRET,
}
params = {'source' : 'ko', 'target' : 'en', 'text' : ko_txt}

 

# 2. requests(URL,key,ko_txt) > response : json(str)
response = requests.post(url, json.dumps(params), headers = headers)

 

# 3. json(str) : en_txt
en_txt = response.json()['message']['result']['translatedText']

실행 결과

 

 

# 함수로 만들기
def translate(txt, source ='ko', target='en'):
    CLIENT_ID, CLIENT_SECRET = "ID값 입력하세요", "SECRET값 입력하세요"
    url = "https://openapi.naver.com/v1/papago/n2mt" 
    headers = {
        'Content-Type': 'application/json',
        'X-Naver-Client-Id' : CLIENT_ID,
        'X-Naver-Client-Secret' : CLIENT_SECRET,
    }
    params = {'source' : source, 'target' : target, 'text' : txt}
    response = requests.post(url, json.dumps(params), headers = headers)
    return response.json()['message']['result']['translatedText']

 

 

translate("꿈꿀 수 있다면, 실현할 수 있습니다!")

♥♥♥♡