티스토리 뷰

안녕하세요

오늘은 공공데이터 포탈에서 데이터를 크롤링하는 방법을 공유해 보겠습니다. 

 

저는 이번 겨울 방학에 2024 구글 솔루션 챌린지에 참가하기 위해 열심히 프로젝트를 진행하고 있는데요,

저희 프로젝트 주제는 '장애인의 버스 승하차를 돕는 안드로이드 어플'입니다. 

 

해당 프로젝트는 실시간 버스 위치 정보, 버스 노선 정보, 특정 정류장 경유 노선 정보 등 다양한 공공 데이터를 필요로 하기 때문에 이번에 처음으로 공공 데이터 포털에서 Open API를 사용해 여러 유용한 정보를 크롤링했습니다.

그럼 그 방법을 자세하게 공유해 보겠습니다!

 


 

1. 공공데이터 포털에서 사용할 API 검색하기 

https://www.data.go.kr/

우선 자신이 찾고 싶은 API를 검색해 줍니다. 정말 다양한 데이터가 있으니 검색어는 구체적일수록 좋습니다!

 

2. 검색 결과에서 원하는 서비스를 선택한다

저는 서울특별시 버스 위치 정보 조회 서비스를 선택했습니다. 근데 막상 해당 페이지에 들어가 보면 정말 막막한데요,

이 페이지에서 주의 깊게 확인해봐야 하는 부분이 두 개 있습니다.

 

[1] 확인할 부분: 상세 기능 조회

먼저 상세 기능을 확인합니다. 

내가 설계한 시나리오에서는 공공 데이터에서 어떤 데이터를 필요로 하는데 이걸 어떻게 얻는지 여기서 대략적으로 확인할 수 있습니다.

예를 들면, 제 프로젝트에서는 버스 기사 홈화면에서 버스 기사가 운행하는 버스 노선 정보와 버스 위치를 얻어와야 하는데, 그럼 혹시 "버스 고유 ID"를 사용해서 버스 노선을 얻어오는 API가 있는지 확인해 보겠습니다! 

 

1) 하나하나 상세기능을 선택해서 조회 버튼을 눌러보면

 

2) 각 기능의 설명과 필요한 변수, 그리고 출력 결과를 보여줍니다. 

 

버스기사가 운행하는 버스 ID(vehID)를 요청 변수에 주면 제게 필요한 데이터인 현재 버스 위치 정보(tmX, tmY), 그리고 현재 정류소 ID(stId)를 받을 수 있는 것입니다. 

 

 

[2] 확인할 부분: 참고문서

두 번째로 확인할 것은 참고 문서입니다. [1] 상세 기능에서 내가 필요로 하는 기능을 간략하게 확인했다면

이제 참고 문서를 확인해야 합니다.

 

참고 문서에는 [1]보다 훨씬 자세하게 기능 명세와 샘플 데이터가 제시되어 있습니다.

이렇게 샘플 데이터와 함께 Rest URL, 그리고 응답 메시지를 확인함으로써 내가 사용할 공공 데이터 서비스를 확정할 수 있습니다.

 

 

3. 서비스를 확정했다면 회원가입, 로그인 후 활용할 데이터에 활용 신청을 한다.

활용 신청을 하면 인증키가 바로 발급되는데 여기서 주의할 점이 있습니다.

내 인증키가 등록되기까지는 1~2시간이 소요됩니다!

 

API 인증키 등록은 수동으로 이뤄지기 때문에 새벽에 활용 신청을 하면 아마 다음 날부터 사용이 가능합니다..

자동으로 등록되는 줄 알고 밤에 신청하고 새벽 내내 인증키 오류가 나서  뭐가 문젠지 오래도록 헤매다가결국 다음 날 공공데이터 고객 센터에 전화해 봤더니,인증키 등록을 담당 기관에 이관하고 거기서 등록해줘야 하기 때문에 넉넉히 3~4일이 소요된다는 답변을 받았습니다.그래도 임시 인증키를 부여해 주셔서 바로 사용할 수 있었고, 다행히 몇 시간 만에 인증키가 잘 작동했습니다.(급한 상황이라면 다음 날 아침에 고객 센터에 전화해보는 것을 추천합니다. 친절하고 신속하게 해결해주십니다!)

 

즉 아침이나 낮이라면 활용 신청 후 1~2시간 후 사용 가능이지만 저녁이나 밤~새벽이면 다음날 사용 가능합니다.

 

이제 직접 사용해 봅시다. 참고 문서에서 봤던 url에 서비스키 값은 발급받은 인증키를 복붙 해 넣고, vehId 파라미터 값은 원하는 버스 ID를 입력해 줍니다! 저는 그냥 크롬에 복붙 하면 오류가 나서 포스트맨을 사용했습니다.

이렇게 원하는 결과를 확인했습니다.

그런데 보시다시피 내게 필요한 데이터뿐만 아니라 필요 없는 데이터까지 모두 출력되는 것을 확인할 수 있습니다.

거기다가 생소한 xml 형태의 결괏값이라 이걸 어떻게 가공해야 할지 난감한데요,

다음 포스팅에서는 공공데이터 api에서 받은 xml 출력값에서 원하는 정보를 가공하는 스프링부트 코드를 공유하겠습니다!

감사합니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함