API 예제 코드
API 통신을 테스트하기 위해 document를 참고하자.
https://guide.ncloud-docs.com/docs/ko/clovaocr-overview
CLOVA OCR 개요
guide.ncloud-docs.com
https://api.ncloud-docs.com/docs/ai-application-service-ocr-ocr
CLOVA OCR Custom API
api.ncloud-docs.com
두 번째 링크의 Custom API 탭에 가면 각 언어 별 호출 예제 코드가 존재한다.
간단한 파이썬 코드를 통해 API 호출을 진행해 보았다.
import requests
import uuid
import time
import json
api_url = 'YOUR_API_URL'
secret_key = 'YOUR_SECRET_KEY'
image_file = 'YOUR_IMAGE_FILE'
request_json = {
'images': [
{
'format': 'jpg',
'name': 'demo'
}
],
'requestId': str(uuid.uuid4()),
'version': 'V2',
'timestamp': int(round(time.time() * 1000))
}
payload = {'message': json.dumps(request_json).encode('UTF-8')}
files = [
('file', open(image_file,'rb'))
]
headers = {
'X-OCR-SECRET': secret_key
}
response = requests.request("POST", api_url, headers=headers, data = payload, files = files)
print(response.text.encode('utf8'))
기존의 발급받은 Secret Key와 API 주소를 기입하자.
나는 네이버 커리어의 이미지를 캡처해 테스트해보았다.
Test 이미지의 경로와 확장자명 format을 잘 설정해 주자.
result = response.json()
with open('result.json', 'w', encoding='utf-8') as make_file:
json.dump(result, make_file, indent="\t")
결과를 확인하기 위해 추가적으로 response 받을 Json 파일을 저장해 주는 코드를 작성한 뒤 TEST!
별다른 오류 메시지 API 요청에 성공한다면 result.json 파일이 생긴다!
해당 파일을 들여다보면 수많은 데이터들이 존재한다.
바운딩된 박스의 정보가 함께 전송되기 때문에 텍스트만 추출하기 위해서는 추가적인 파싱 작업이 필요하다!
위 코드로 전송받게 되면 한글이 유니코드로 인코딩 되어 깨지게 되는 현상이 발생한다.
with open('result.json', 'w', encoding='utf-8') as make_file:
json.dump(result, make_file, indent="\t", ensure_ascii=False)
ensure_ascii=False 파라미터를 넣어 한글 깨짐을 해결해 줄 수 있다.
[참고 블로그] https://jsikim1.tistory.com/222
Python json dump 한글 깨짐 해결 방법 (json 파일 쓰기 한글 유니코드 변환 해결 방법)
Python json dump 한글 깨짐 해결 방법 (json 파일 쓰기 한글 유니코드 변환 해결 방법) Python 에서 json.dump() 를 사용하여 json 파일을 생성하려고 할 때, 한글이 깨지는 현상이 나타날 수 있습니다. Python
jsikim1.tistory.com
텍스트 데이터 파싱
앞에서 말한 대로 텍스트 데이터만 추출하기 위해서는 추가적인 파싱 작업이 필요하다.
순서대로 images -> 0번째 값 ([] 형태로 wrap 되어 있다.) -> fields -> inferText에 텍스트가 존재한다.
따라서 다음 코드를 통해 텍스트만 추출하여 사용할 수 있다.
text = ""
for field in result['images'][0]['fields']:
text += field['inferText']
print(text)
'Study > Python' 카테고리의 다른 글
네이버 Clova AI OCR API를 사용해보자. (1) (0) | 2023.05.09 |
---|---|
[Python] 파이썬 코딩테스트 시간 단축하기 (0) | 2023.01.31 |
[Selenium] 페이지를 스크롤하며 무한 크롤링 하기 (0) | 2023.01.27 |
Selenium을 활용한 동적 크롤링 링크 주소 가져오기 (0) | 2023.01.26 |
Selenium을 활용한 네이버 쇼핑 품목 동적 크롤링 (0) | 2023.01.25 |