본문 바로가기

Data Science/Data Collection

[05. 공공데이터포털 API] 006. 상업업무용 부동산 매매 신고 자료

728x90

상업업무용 부동산 매매 신고정보 API를 통하여 지역코드와 기간을 설정하여 해당지역, 해당기간의 상업업무용 부동산 매매 신고 자료를 조회할 수 있다.

 

[그림 5.12] 상업업무용 부동산 매매 신고정보 API 요청 메시지

 

import pandas as pd
import requests
from bs4 import BeautifulSoup

def get_business_property_trade(api_key, LAWD_CD, DEAL_YMD):
    pageNo = 1
    business_property_trade = []

    while True:
        url = 'http://openapi.molit.go.kr/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcNrgTrade?serviceKey=%s&LAWD_CD=%s&DEAL_YMD=%s&pageNo=%s' % (api_key, LAWD_CD, DEAL_YMD, pageNo)
        response = requests.get(url)
        result = response.text
        soup = BeautifulSoup(result, 'html.parser')

        if soup.resultcode.text == '00':
            for item in soup.find_all('item'):
                business_property_trade.append(json.loads('{"' + item.text.replace('<', '","').replace('>', '":"')[3:] + '"}'))

            if int(soup.totalcount.text) == len(business_property_trade):
                break
            else:
                pageNo += 1

    if len(business_property_trade) > 0:
        business_property_trade = pd.DataFrame(business_property_trade)
    else:
        business_property_trade = pd.DataFrame()

    return business_property_trade

if __name__ == '__main__':
    api_key = '*'
    LAWD_CD = '11110'
    DEAL_YMD = '201512'

    business_property_trade = get_business_property_trade(api_key, LAWD_CD, DEAL_YMD)
    print(business_property_trade)


결과 값
   거래금액  건물면적    건물주용도  건축년도     년  ...   월  유형   일   지역코드    층
0     120,000   395  제2종근린생활  2001  2015  ...  12  일반  31  11110  NaN
1     483,000   937  제2종근린생활  1990  2015  ...  12  일반  15  11110  NaN
2      22,000    31       판매  2007  2015  ...  12  집합  10  11110   -1
3     158,000   276       숙박  1959  2015  ...  12  일반   8  11110  NaN
4     158,000   276       숙박  1959  2015  ...  12  일반   8  11110  NaN
5     247,500   154  제2종근린생활  1976  2015  ...  12  일반  21  11110  NaN
6     160,000    79  제1종근린생활   NaN  2015  ...  12  일반  29  11110  NaN
7     174,000   323  제2종근린생활  1976  2015  ...  12  일반  28  11110  NaN
8     162,000   201  제2종근린생활  1961  2015  ...  12  일반   3  11110  NaN
9      14,700     9  제2종근린생활   NaN  2015  ...  12  집합  18  11110  NaN
10    420,000  1073  제1종근린생활  1964  2015  ...  12  일반  23  11110  NaN
11     63,000    10       판매   NaN  2015  ...  12  집합   1  11110   31
12     80,000    10       판매   NaN  2015  ...  12  집합   7  11110   30
13     75,000    12       판매   NaN  2015  ...  12  집합  16  11110   31
14    138,700   270  제1종근린생활   NaN  2015  ...  12  일반  19  11110  NaN
15    100,000    68  제2종근린생활   NaN  2015  ...  12  일반  21  11110  NaN
16     79,500    41  제2종근린생활   NaN  2015  ...  12  일반   7  11110  NaN
17     16,500     8       판매  1997  2015  ...  12  집합  10  11110    2
18     12,000    35  제2종근린생활  1997  2015  ...  12  집합  16  11110  NaN
19      1,700     9       판매  1993  2015  ...  12  집합  17  11110  NaN
20      1,700     9       판매  1993  2015  ...  12  집합  17  11110  NaN
21     10,800    33     교육연구  1997  2015  ...  12  집합  21  11110  NaN
22      9,180    29     교육연구  1997  2015  ...  12  집합  21  11110    9
23      9,180    30       업무  1997  2015  ...  12  집합  21  11110  NaN
24     10,800    35       업무  1997  2015  ...  12  집합  21  11110   10
25     95,000   348  제1종근린생활  1990  2015  ...  12  일반  23  11110  NaN
26     15,500    56  제2종근린생활  1996  2015  ...  12  집합  30  11110   -1
27    233,000   945       숙박  1975  2015  ...  12  일반  15  11110  NaN
28     12,250    59  제1종근린생활  2015  2015  ...  12  집합  18  11110  NaN
29     30,000    25  제2종근린생활  2013  2015  ...  12  집합  23  11110  NaN
30     14,500    54  제1종근린생활  2015  2015  ...  12  집합  30  11110  NaN
31  2,800,000  1878  제2종근린생활  1953  2015  ...  12  일반  11  11110  NaN
32  2,639,010  2346       업무  1986  2015  ...  12  일반  11  11110  NaN
33    128,000   221  제1종근린생활  1988  2015  ...  12  일반  14  11110  NaN
34    192,000   587  제1종근린생활  1986  2015  ...  12  일반  21  11110  NaN
728x90