JJUNNAK's
공공데이터 OpenAPI 사용법 (예제) 본문
공공데이터 포털 : https://www.data.go.kr/index.do
공공 데이터 포털에서 회원가입 후 한국부동산원의 부동산 거래 api를 사용해 보았다.
사용 과정
- 공공데이터 포털 회원가입
- 사용하고자 하는 api 승인 요청
- 발급 받은 인증키 등록

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
'Crawling' 카테고리의 다른 글
[ Pandas ] 데이터 엑셀, CSV로 저장 & 불러오기 (0) | 2023.01.13 |
---|---|
[ BeautifulSoup4 ] find(), find_all() 차이점. (0) | 2023.01.13 |
[ Selenium ] 로또 당첨번호 크롤링 예제 (0) | 2023.01.13 |
[ Selenium ] 해외 축구사이트 크롤링 예제 (0) | 2023.01.13 |
[ Selenium ] Selenium 준비과정 (0) | 2023.01.13 |
Comments