본문 바로가기
개발

아파트 매매 실거래가 데이터 조회하기

by ▶ Carpe diem ◀ 2023. 10. 13.

아파트 매매 실거래가 데이터 조회하기

아파트 매매 실거래가 데이터를 이용하기 위해서는 먼저 공공데이터포털에서 API 활용 신청을 해야 합니다.

공공데이터포털 API 활용 신청

공공데이터포털(https://www.data.go.kr/index.do)에 들어가서 국토교통부에서 제공하고 있는 아파트매매 실거래가 자료를 조회할 수 있도록 API 활용 신청을 합니다.

공공데이터포털에서 국토교통부_아파트매매 실거래자료 활용신청 화면
공공데이터포털에서 국토교통부_아파트매매 실거래자료 활용신청 화면

 

위 화면에서 "활용신청" 버튼을 클릭해서 신청하면 됩니다. 신청할 때 작성해야 하는 내용은 어렵지 않으니 본문에서는 생략하겠습니다. 활용신청을 하고 승인이 되면 아래와 같이 마이페이지에서 인증키를 확인할 수 있습니다.

승인된 인증키 확인 화면
승인된 인증키 확인 화면

 

승인된 인증키를 이용해서 데이터를 잘 가지고 올 수 있는지 공공데이터포털에서 바로 확인해볼 수 있습니다. 다음 경로 ("홈 > 마이페이지 > 데이터 활용 > Open API > 활용신청 현황") 로 들어가면 아래와 같이 "미리보기" 버튼을 확인할 수 있습니다.

승인된 인증키를 공공데이터포털에서 확인할 수 있는 화면
승인된 인증키를 공공데이터포털에서 확인할 수 있는 화면

 

"미리보기" 버튼을 클리하면 아래와 같이 XML 형태로 아파트 실거래가 정보를 잘 가지고 오는 것을 확인할 수 있습니다.

<response>
  <header>
    <resultCode>00</resultCode>
    <resultMsg>NORMAL SERVICE.</resultMsg>
  </header>
<body>
  <items>
    <item>
      <거래금액> 82,500</거래금액>
      <거래유형> </거래유형>
      <건축년도>2008</건축년도>
      <년>2015</년>
      <등기일자> </등기일자>
      <법정동> 사직동</법정동>
      <아파트>광화문스페이스본(101동~105동)</아파트>
      <월>12</월>
      <일>10</일>
      <전용면적>94.51</전용면적>
      <중개사소재지> </중개사소재지>
      <지번>9</지번>
      <지역코드>11110</지역코드>
      <층>11</층>
      <해제사유발생일> </해제사유발생일>
      <해제여부> </해제여부>
    </item>
...

SERVICE KEY IS NOT REGISTERED ERROR 이 발생하는 경우는 아래 내용을 확인하세요.

더보기

공공데이터포털 QnA 를 확인해보면 아래와 같은 내용을 확인할 수 있습니다.

2. SERVICE KEY IS NOT REGISTERED ERROR
- 인증키 장애로 잘못된 인증키를 넣어 호출 시 발생합니다.
예외적으로 서비스 신청(승인), 인증키 발급(재발급 포함)하는 경우 해당 정보가 기관 서버로 동기화되지 않아 발생할 수 있으며, 동기화는 약 1시간 정도 소요될 수 있습니다.

연휴 기간에 신청해서 연휴 기간에는 인증키가 정상 동작하는 것을 확인하지 못 하고, 연휴 지난 다음에 인증키가 정상 동작하는 것을 확인할 수 있었습니다.

 

휴일이나 연휴 기간에 신청하시는 분들 중 인증키가 정상 동작하지 않고, 위와 같이 에러를 반환하는 경우는 제 경우를 참고해보시는 것도 좋을 것 같습니다.

 

인증키를 이용해서 데이터를 조회할 때 LAWD_CD, DEAL_YMD를 사용했는데, 2개의 항목에 대해 조금 더 자세히 알아보겠습니다.

항목명(영문) 항목명(국문) 항목 설명
LAWD_CD 지역코드 행정표준코드관리시스템(https://www.code.go.kr)의 법정코드 10자리 중 앞 5자리
DEAL_YMD 계약년원 실거래 자료의 계약년월(YYYYMM 형태)

공공데이터포털에서 제공하는 문서를 참고하시면 OpenAPI 활용에 대해 더 자세히 알 수 있습니다. 공공데이터포털에서 2023년 10월 13일 다운로드한 파일을 첨부하니 자세한 내용은 아래 파일을 확인하시면 좋을 것 같습니다.

아파트 매매 신고정보 조회 기술문서.hwp
0.11MB

 

다음으로는 Python 코드를 이용해서 아파트 매매 실거래가를 조회할 수 있는 간단한 코드에 대해 알아보겠습니다.

 

Python 코드를 이용한 아파트 매매 실거래가 조회하기

아래 코드를 이용하면 아파트 매매 실거래가를 조회할 수 있습니다. 아래 코드에서 url 과 payload(LAWD_CD, DEAL_YMD )는 위에서 설명해서 여기에서는 따로 설명하지 않습니다. 아래 코드 중 get_items 함수는 response 를 파싱하는 함수입니다. response 의 포맷은 "미리보기" 버튼을 클릭해서 받은 데이터를 통해 확인할 수 있습니다.

import datetime
import pandas as pd
import requests
import xml.etree.ElementTree as ET

def get_items(response):
    root = ET.fromstring(response.content)
    item_list = []
    for child in root.find('body').find('items'):
        elements = child.findall('*')
        data = {}
        for element in elements:
            tag = element.tag.strip()
            text = element.text.strip()
            # print tag, text
            data[tag] = text
        item_list.append(data)
    return item_list

url = 'http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade?'
service_key = '공공데이터포털에서 발급받은 인증키'
contract_date = '201512'
location_code = '11110'

payload = "LAWD_CD=" + location_code + "&" + \
          "DEAL_YMD=" + contract_date + "&" + \
          "serviceKey=" + service_key + "&"

res = requests.get(url + payload)

items_list = get_items(res)
df = pd.DataFrame(items_list)
print(df)

위 코드를 실행했을 때 결과값은 아래와 같습니다. 첫번째 행을 보면 위 "미리보기" 버튼을 클릭했을 때 가져오는 데이트와 동일함을 알 수 있습니다.

Python 코드를 실행한 결과값
Python 코드를 실행한 결과값

 

다음으로는 streamlit을 이용해서 아파트 매매 실거래가를 다양한 방법으로 보여주는 방법에 대해 공부하고 작성해볼 예정입니다.