본문 바로가기

Coding Study/Python

파이썬 - 공공 데이터 포털 Open API XML 데이터 가져오기

728x90
반응형

블로그에 하루하루 파이썬 공부를 하면서 코딩한 내용을 정리하고 있는데 복습의 의미도 있고 나름 정리도 되면서 좋은 점이 많은 것 같습니다. 오늘은 정부에서 운영중인 공공데이터 포털 사이트의 Open API 를 이용하여 " 미세먼지 " 데이터를 XML 형태로 가져와서 데이터 가공을 해 보도록 하겠습니다.

 

공공데이터 포털 Open API 신청 화면

우선 공공데이터 포털에 접속하여 연동할 데이터 검색 후 [ 활용신청 ] 을 해 주셔야 합니다. 활용신청을 하면 위와 같은 페이지가 접속이 되는데 디폴트로 체크되어 있는 값을 그대로 유지한채로 상세기능정보과 라이센스 표시 동의를 한 후에 " 신청 " 버튼을 클릭합니다.

 

API 활용신청 후 신청이 완료되면 마이페이지 > 개발계정 메뉴에 접속해 보시면 [ 일반 인증키 ] 부분에 Open API 연동에 필요한 인증키가 발급된 부분을 확인 할 수 있습니다. 해당 인증키를 기반으로 XML 형태의 데이터를 가져오는 소스 코드를 아래와 같이 작성하면 됩니다.

 

import requests
from bs4 import BeautifulSoup

open_api_key = '공공데이터 인증키 입력'
params = '&numOfRows=10&pageNo=1&sidoName=서울&ver=1.3'
# 파라미터 값을 params 의 변수에 저장
open_url = 'http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getCtprvnRltmMesureDnsty?ServiceKey=' + open_api_key + params
# Open API URL 생성

res = requests.get(open_url)
soup = BeautifulSoup(res.content, 'html.parser')
# XML 도 Html 과 동일하게 html.parser 이용

data = soup.find_all('item')
# XML 데이터에서 item 태그를 모두 불러와 data 변수에 저장
for item in data:
    # print(data)
    stationname = item.find('stationname')
    pm10grade = item.find('pm10grade')
    print(stationname.get_text(), pm10grade.get_text())

※ 결과값

 

영등포구 2

금천구 2

용산구 2

 

 

728x90
반응형