본문 바로가기
개발일지

python 공공데이터포털 API 사용하기

by 새우하이 2019. 10. 3.

이번에 진행하는 프로젝트에서 질병정보서비스를 이용해야 할 일이 생겨서

 

공공데이터포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Dataset)와 Open API로 제공하는 사이트입니다.

www.data.go.kr

API를 사용하기로 했다.

 

data.go.kr 회원 가입하고

API 활용신청만 하면 바로 승인된다

아마 APP_KEY승인은 30분~1시간 정도 걸리는 듯

 

요청 변수를 확인하고

 

requests, BeautifulSoup,lxml 모듈을 사용

 

 

#pip3 install requests

로 requests 모듈을 install 하고

웹 크롤링에 사용하는 BeautifulSoup 모듈도 install !!

#pip3 intall beautifulsoup4

이어서 lxml 까지 설치

#pip3 install lxml

beautifulsoup와 lxml 에관한 정보는 https://brownbears.tistory.com/414 이 블로그에서 얻었다.

 

 

[Python] BeautifulSoup 사용하기

웹 크롤러를 만들거나 html에서 필요한 정보를 검색할 때, BeautifulSoup 라이브러리를 사용하여 편리하게 코딩할 수 있습니다. 설치 $ pip3 install beautifulsoup4 beautifulsoup에는 기본적으로 파이썬 표준라..

brownbears.tistory.com

 

이제 모듈들을 python 파일에 import 해준다

import requests
from bs4 import BeautifulSoup

 

이제 질병정보서비스의 End Point의 링크(http://apis.data.go.kr/B551182/diseaseInfoService)와

Servicekey와 요청 변수들을 이용해서 받아와야 한다

 

views.py(def blabla(request):)

url1 = 'http://apis.data.go.kr/B551182/diseaseInfoService?'
servicekey = 'serviceKey=본인의 서비스키'
url2 = '&diseaseType=SICK_NM&searchText=' + 검색어 value
response = requests.get(url1+servicekey+url2).text
bs = BeautifulSoup(response, 'lxml')

result = bs.find('sicknm') #<sickNm>BlaBla</sickNm> 하나만 return
혹은
result = bs.find_all('sicknm') #<sickNm>BlaBla</sickNm> 를 모두 찾아 return

이렇게 해주면

 

result에는

<sicknm>어쩌구저쩌구</sicknm>이라는 형태로 담긴다

 

여기에서 이제 태그들 사이의 "어쩌구어쩌구" 만 추출 하기 위해선

 

result.text

를 사용하면 태그 사이의 내용만 나옴 ㅎㅎ

 

 

댓글