데이터 수집 - Open API

LSH·2023년 5월 23일
0

교육 정보

  • 교육 명: 경기미래기술학교 AI 교육
  • 교육 기간: 2023.05.08 ~ 2023.10.31
  • 오늘의 커리큘럼: 빅데이터 기초 활용 역량 강화 (5/10~6/9) - 데이터 수집
  • 강사: 조미정 강사님 (빅데이터, 머신러닝, 인공지능)
  • 강의 계획:
    1. 파이썬 언어 기초 프로그래밍
    2. 크롤링 - 데이터 분석을 위한 데이터 수집(파이썬으로 진행)
    3. 탐색적 데이터 분석, 분석 실습
    - 분석은 파이썬만으로는 할 수 없으므로 분석 라이브러리/시각화 라이브러리를 통해 분석
    4. 통계기반 데이터 분석
    5. 미니프로젝트

1. 공공데이터 Open API

공공데이터의 개념

  • 공공 데이터?
    • 공공기관이나 정부가 보우하고 있는 데이터
    • 일반 데이터에 비해 상대적으로 가치가 높음
    • 누구나 자유롭게 이용 가능
    • 접근을 위해 회원가입 및 인증키 발행 필요

공공데이터 사이트

국내

• 통합데이터 지도 : https://www.bigdata-map.kr/ (20.03.31 출시)
• 공공데이터포털 : https://www.data.go.kr/
• 통계지리정보서비스 : https://sgis.kostat.go.kr/view/index
• 서울 열린 데이터 광장 : http://data.seoul.go.kr/
• 부산 공공데이터 포털 : https://data.busan.go.kr/index.nm
• 빅데이터 센터 : https://kbig.kr/portal/

국외

• 미국 공공데이터센터 : https://www.data.gov/
• 중국국립데이터센터 : http://data.stats.gov.cn/
• 경제협력개발기구(OECD) 데이터베이스: https://data.oecd.org/
• 세계은행 공개정보 : https://data.worldbank.org/

공공데이터 API의 개념

  • HTTP요청을 통해 공공데이터를 받아오는 API

실습 - 도로명 주소 API 사용해보기

  1. 공공 데이터 포털 (https://www.data.go.kr/) 회원 가입
  2. 도로명주소 조회 서비스 - 활용 신청
  3. 마이페이지에서 확인 가능 (승인이 났어도 인증키 활성화는 몇시간정도 걸릴 수 있음)

라이브러리 가져오기

!pip install xmltodict
import requests
import xmltodict  #xml자료를 dict형태로 변환
import pprint as pp # print보다 가독성이 좋게 출력해주는 라이브러리

요청 서비스 URL, Key값 확인하기

serviceKey= "발행받은 인증키 입력"
url= "서비스 URL 입력"

서비스 URL 호출하기

search_se = 'road'             # 검색 방법
srch_wrd = '한강대로 391'       # 검색어 
req_param = {'ServiceKey':serviceKey ,'searchSe':search_se, 'srchwrd':srch_wrd }
response = requests.get(url, params= req_param) # 설정한 파라미터로 데이터를 요청해서 response변수에 저장
print(response.status_code) # HTTP status code, 200이면 회신이 이루어짐을 알 수 있음 
print(response.text)        # 요청해서 받아온 데이터 

데이터 처리

print(response.text)   # xml 형태인 response.text를 접근이 용이하도록 dict으로 바꿔야 함 
response_dict = xmltodict.parse(response.text) #데이터를 dcit 형태로 파싱
print(response_dict)
pp.pprint(response_dict)

최종적으로 아래와 같이 검색된 도로명 주소를 받아올 수 있다.

# pp.pprint(response_dict)의 출력값
{'NewAddressListResponse': {'cmmMsgHeader': {'countPerPage': '10',
                                             'currentPage': None,
                                             'errMsg': None,
                                             'requestMsgId': None,
                                             'responseMsgId': None,
                                             'responseTime': '20230523:165012732',
                                             'returnCode': '00',
                                             'successYN': 'Y',
                                             'totalCount': '1',
                                             'totalPage': '1'},
                            'newAddressListAreaCd': {'lnmAdres': '서울특별시 용산구 '
                                                                 '한강대로 391 '
                                                                 '(동자동, 센트럴 '
                                                                 '프라자)',
                                                     'rnAdres': '서울특별시 용산구 동자동 '
                                                                '43-56 센트럴 프라자',
                                                     'zipNo': '04320'}}}
profile
:D

0개의 댓글