JJUNNAK's

공공데이터 OpenAPI 사용법 (예제) 본문

Crawling

공공데이터 OpenAPI 사용법 (예제)

최낙준 2023. 1. 13. 04:23

공공데이터 포털 : https://www.data.go.kr/index.do

 

공공 데이터 포털에서 회원가입 후 한국부동산원의 부동산 거래 api를 사용해 보았다.

사용 과정
  1. 공공데이터 포털 회원가입
  2. 사용하고자 하는 api 승인 요청
  3. 발급 받은 인증키 등록

 

 

4. 사용하고자 하는 데이터 카테고리에서 요청변수 입력후 api 호출

 

 

5. xml 형식으로 발급받아 URL에 접속해보면 결과는 다음과 같다.

위의 url를 beautifulSoup를 통해서 크롤링 할수 있다.

 코드 
# 부동산 공공데이터 api 크롤링
from bs4 import BeautifulSoup
from urllib.request import urlopen
# url 요청변수 분할
endpoint = "https://api.odcloud.kr/api/RealEstateTradingSvc/v1/getRealEstateTradingCountYear"
page = "?page=1"
perPage = "&perPage=10"
reType = "&returnType=XML"
startDate = "&cond%5BRESEARCH_DATE%3A%3ALT%5D=202101"
endDate = "&cond%5BRESEARCH_DATE%3A%3ALTE%5D=202112"
typeNum = "&cond%5BDEAL_OBJ%3A%3AEQ%5D=01"
serviceKey = "발급받은 인증키 입력"
# url 조합
url = endpoint + page + perPage + reType + startDate + endDate + typeNum + serviceKey

# BeautifulSoup
html = urlopen(url)
obj = BeautifulSoup(html,"html.parser")
print(obj)

 

 결과 
C:\Users\nackjun\anaconda3\envs\crolling\python.exe C:/Users/nackjun/PycharmProjects/crolling/Test/api_01.py
<results><currentcount>10</currentcount><data><item><col name="RESEARCH_DATE"/>2021<col name="ALL_CNT"/>295860<col name="DEAL_OBJ"/>01<col name="LEVEL_NO"/>0<col name="REGION_CD"/>11000<col name="REGION_NM"/>서울</item><item><col name="ALL_CNT"/>6169<col name="DEAL_OBJ"/>01<col name="LEVEL_NO"/>1<col name="REGION_CD"/>11110<col name="REGION_NM"/>종로구<col name="RESEARCH_DATE"/>2021</item><item><col name="ALL_CNT"/>8719<col name="DEAL_OBJ"/>01<col name="LEVEL_NO"/>1<col name="REGION_CD"/>11140<col name="REGION_NM"/>중구<col name="RESEARCH_DATE"/>2021</item><item><col name="DEAL_OBJ"/>01<col name="LEVEL_NO"/>1<col name="REGION_CD"/>11170<col name="REGION_NM"/>용산구<col name="RESEARCH_DATE"/>2021<col name="ALL_CNT"/>9254</item><item><col name="ALL_CNT"/>8002<col name="DEAL_OBJ"/>01<col name="LEVEL_NO"/>1<col name="REGION_CD"/>11200<col name="REGION_NM"/>성동구<col name="RESEARCH_DATE"/>2021</item><item><col name="RESEARCH_DATE"/>2021<col name="ALL_CNT"/>7905<col name="DEAL_OBJ"/>01<col name="LEVEL_NO"/>1<col name="REGION_CD"/>11215<col name="REGION_NM"/>광진구</item><item><col name="REGION_NM"/>동대문구<col name="RESEARCH_DATE"/>2021<col name="ALL_CNT"/>10227<col name="DEAL_OBJ"/>01<col name="LEVEL_NO"/>1<col name="REGION_CD"/>11230</item><item><col name="RESEARCH_DATE"/>2021<col name="ALL_CNT"/>9900<col name="DEAL_OBJ"/>01<col name="LEVEL_NO"/>1<col name="REGION_CD"/>11260<col name="REGION_NM"/>중랑구</item><item><col name="LEVEL_NO"/>1<col name="REGION_CD"/>11290<col name="REGION_NM"/>성북구<col name="RESEARCH_DATE"/>2021<col name="ALL_CNT"/>10325<col name="DEAL_OBJ"/>01</item><item><col name="RESEARCH_DATE"/>2021<col name="ALL_CNT"/>8395<col name="DEAL_OBJ"/>01<col name="LEVEL_NO"/>1<col name="REGION_CD"/>11305<col name="REGION_NM"/>강북구</item></data><matchcount>4458</matchcount><page>1</page><perpage>10</perpage><totalcount>32012</totalcount></results>

Process finished with exit code 0
Comments