20221207- 파이썬(open Api 검색,번역)

공현지·2022년 12월 11일

파이썬

목록 보기
10/11

open Api01

API : 여러 APPlication 사이에서 간편한 Interface
Open API
1) HTTP통해 Data 요청하며, 주로 XML이나 JSON 형식으로 응답
2) 최근 JSON 방식 응답하는 API가 빠르게 늘어나고 있음
3) 유용한 형식으로 정리된 Data 제공 받을수 있음
core에서도 urllib가 있지만 ,주로 requests가 사용 됨 (쉽고 휠씬 편리)

import requests  # 설치

# get방식의 호출
res = requests.get('https://developers.naver.com/main/')

print("type(res)->", type(res))
print("print res.text->", res.text)



🔽 호출한 사이트 에서 있는 코드 가져옴

open Api02

http://developers.naver.com 싸이트 이동
② Naver API 사용 위해 Application 등록 수행
③ 사용 API에서 검색 서비스 선택(get / post 방식)
④ 파이썬 검색어로 검색하여 결과 JSON 확인

네이버 검색 API예제는 블로그를 비롯 전문자료까지 호출방법이 동일하므로 blog검색만 대표로 예제
네이버 검색 Open API 예제 - 블로그 검색

🔽가이드 보고 하기

import requests
# 여러분 꺼
headers = {
    'X-Naver-Client-Id' : 'j513HictYVPoWEl27Yor',
    'X-Naver-Client-Secret' : 'I0m7fwb6Cn' ,
}

payLoad = {
    'query' : '스프링',
    'display' : 100,
 }

url = 'https://openapi.naver.com/v1/search/blog' # json 결과

res = requests.get(url,  headers=headers , params=payLoad)

print('request sended...')
# 응답이 json 형태로 오기로 되어 있음
print(res.json())


# json Web Viewer -> jsonviewer.stack.hu
# 원하는것만 가져올수있음 
result = res.json()['items'][3]['title']
print('result 3번째 title만 가져옴')
print(result)


open Api03

파파고 번역

Open API

http://developers.naver.com 싸이트 이동
② Naver API 사용 위해 Application 등록 수행
③ 사용 API에서 검색 서비스 선택(get / post 방식)
④ 파이썬 검색어로 검색하여 결과 JSON 확인

네이버 검색 API예제는 블로그를 비롯 전문자료까지 호출방법이 동일하므로 blog검색만 대표로 예제
네이버 검색 Open API 예제 - 블로그 검색


from   requests import Request
from   requests import Session

s = Session()

# ID와 비밀Key Setting
headers = {
    'X-Naver-Client-Id' : 'j513HictYVPoWEl27Yor',
    'X-Naver-Client-Secret' : 'I0m7fwb6Cn' ,
}
text = "Yesterday all my troubles seemed so far away"

# dict Type
payLoad = {
    'source' : 'en',
    'target' : 'ko',
    'text'   : text,
}

# 문장번역 URL 지정
url = "https://openapi.naver.com/v1/papago/n2mt"
req = Request('POST' , url , data=payLoad, headers=headers)
# 미리 내부적으로 Compile
prepared = req.prepare()
# Session 객체를 통해 전송
res = s.send(prepared)

print("res.json()->", res.json())
# online jsonviewer  --> http://jsonviewer.stack.hu/
result = res.json()['message']['result']['translatedText']
print("result->", result)


open Api04

Yesterday.txt를 읽어 해석하는 PGM
네이버 검색 Open API 예제 - 블로그 검색
파파고 SMT API 예제
과제 : 1) Yesterday.txt 파일을 읽기
2) 한 라인씩 읽고 원문 한라인, 해석된 한 라인 씩
전체문장을 해석 YesterdayTrans.txt에 저장

Yesterday.txt

Yesterday, all my troubles seemed so far away.
Now it Looks as though they,re here to stay.
Oh, I believe in Yesterday.
Suddenly, I,m not half the man I used to be.
There's a shadow hanging over me.
Oh, yesterday came suddenli.
Why she had to go?
I don't know , shw wouldn't say.
I said something wrong.
Now I long for yesterday.


from   requests import Request
from   requests import Session

s = Session()

# ID와 비밀Key Setting
headers = {
    'X-Naver-Client-Id' : 'j513HictYVPoWEl27Yor',
    'X-Naver-Client-Secret' : 'I0m7fwb6Cn' ,
}

url = "https://openapi.naver.com/v1/papago/n2mt"

# 문장번역 누적 변수
totalText = ''
with open('Yesterday.txt', 'r') as readFile:
    sourceText = 'Start..'    # 초기화된 값을 설정 , 일단 시작할수 있도록 ...

    while sourceText != '':                   # readline()함수는 파일의 끝에 도달하면 ''를 반환함
        # print(line, end='')
        sourceText = readFile.readline()
        # dict Type
        payLoad = {
            'source': 'en',
            'target': 'ko',
            'text': sourceText,
        }

        req = Request('POST' , url , data=payLoad, headers=headers)
        # 미리 내부적으로 Compile
        prepared = req.prepare()
        # Session 객체를 통해 전송
        res = s.send(prepared)
        # online jsonviewer  --> http://jsonviewer.stack.hu/
        print("res.json()->", res.json())

        try:
            transText = res.json()['message']['result']['translatedText']
        except:
            transText = '종료'
            break
        totalText = totalText + '\n' + sourceText + transText +'\n'

with open('YesterdayTrans.txt', 'w', encoding='utf-8') as writeFile:
    writeFile.write(totalText)
    readFile.close()
    writeFile.close()

print("totalText->", totalText)

🔽🔽 yesterday 번역 완


Yesterday, all my troubles seemed so far away.
어제, 나의 모든 고민들이 너무 멀리 있는 것 같았다.

Now it Looks as though they,re here to stay.
이제 그들은 여기 머물기 위해 온 것처럼 보인다.

Oh, I believe in Yesterday.
오, 나는 어제를 다시 그리게 돼.

Suddenly, I,m not half the man I used to be.
갑자기, 나는 예전의 절반도 되지 않았다.

There's a shadow hanging over me.
그림자가 드리워져 있어요.

Oh, yesterday came suddenli.
아, 어제 갑자기 왔어요.

Why she had to go?
왜 그녀가 가야만 했을까요?

I don't know , shw wouldn't say.
몰라, 쇼는 말하지 않을 거야.

I said something wrong.
제가 잘못 말했어요.

Now I long for yesterday.
이제 나는 어제가 그립다.

0개의 댓글