728x90
공공데이터포털 OPEN API 사용방법에 대해 알아보자.
위 사이트에 가입을 하고 데이터셋 – 오픈 API 메뉴로 들어가면 다음과 같이 API로 제공되는 데이터 리스트가 나온다.
도로명주소조회서비스 API를 클릭하여 활용신청 버튼을 눌러 신청하자. 내용을 적당히 입력하여 신청 버튼을 누르면 된다. 자동승인이므로 바로 사용이 가능하다.
개발계정 상세보기에서 일반 인증키 발급 버튼을 누르면 아래와 같이 인증키가 발급된다.
참고문서를 다운받아서 보면 사용방법에 대해 나와있다.
인증키를 넣고 url을 완성하여 조회해보면 다음과 같은 구조로 이루어져 있음을 알 수 있다.
XML구조를 가공하는 파이썬 코드를 작성해보자.
import pandas as pd
import requests
from bs4 import BeautifulSoup
def get_address(api_key, search, word):
url = 'http://openapi.epost.go.kr/postal/retrieveNewAdressAreaCdService/retrieveNewAdressAreaCdService/getNewAddressListAreaCd?ServiceKey=%s&searchSe=road&searchSe=%s&srchwrd=%s' % (api_key, search, word)
response = requests.get(url)
result = response.text
soup = BeautifulSoup(result, 'lxml')
success = soup.find('successyn').text
data = []
# 요청 성공여부 체크
if success == 'Y':
# 결과 값을 리스트에 담기
for item in soup.find_all('newaddresslistareacd'):
data.append({'zipno': item.find('zipno').text, 'lnmadres': item.find('lnmadres').text, 'rnadres': item.find('rnadres').text})
if len(data) > 0:
data = pd.DataFrame(data)
else:
data = pd.DataFrame()
return data
if __name__ == '__main__':
api_key = '*'
search = 'road'
word = '서초대로74길 11'
address = get_address(api_key, search, word)
print(address)
결과 값
lnmadres rnadres zipno
0 서울특별시 서초구 서초대로74길 11 (서초동, 삼성전자빌딩) 서울특별시 서초구 서초동 1320-10 삼성전자빌딩 06620
728x90
'Data Science > Data Collection' 카테고리의 다른 글
[05. 공공데이터포털 API] 003. 표준지공시지가속성조회 (0) | 2020.04.16 |
---|---|
[05. 공공데이터포털 API] 002. 상가(상권)정보 (0) | 2020.04.16 |
[04. 금융감독원 API] 021. 지분공시 종합정보 – 임원ㆍ주요주주 소유보고 (0) | 2020.04.15 |
[04. 금융감독원 API] 020. 지분공시 종합정보 – 대량보유 상황보고 (0) | 2020.04.15 |
[04. 금융감독원 API] 019. 상장기업 재무정보 – XBRL 택사노미 재무제표 양식 (0) | 2020.04.15 |