-
구글 지도 데이터 크롤링 프로그램 만들기자동화 프로그램 2026. 3. 19. 10:41

매장 하나에 클릭 다섯 번
오늘 의뢰주신 고객님은 여러 지역에 흩어진 매장 수백 곳의 정보를 정리해야 하는 업무를 맡고 있었다. 평점, 리뷰 수, 주소, 전화번호, 웹사이트, 예약 플랫폼 등 이걸 구글 지도에서 하나씩 검색해서 엑셀에 옮겨 적고 있었다. 한 매장당 검색하고, 장소 페이지 들어가서, 정보를 눈으로 읽고, 엑셀에 복붙하는 과정이 반복됐다. 전화번호 하나 찾는 데 클릭이 대여섯 번이고, 그게 수백 건이었다.
문제는 단순 반복이라는 것만이 아니었다. 같은 이름의 매장이 여러 도시에 있는 경우가 있었고, 검색 결과가 리스트로 뜨면 어떤 걸 골라야 할지 판단해야 했다. 임시 휴업이나 폐업 상태인 매장도 섞여 있어서, 수집한 데이터를 나중에 다시 걸러내는 작업까지 해야 했다. 결국 단순해 보이는 "정보 수집"이 하루를 통째로 잡아먹는 업무가 되어 있었다.
막연한 요청에서 구체적인 설계까지
처음 요청은 "구글 지도에서 매장 정보 자동으로 뽑아주는 프로그램"이었다. 대화를 나눠보니 빠져 있던 조건들이 하나씩 나왔다.
우선 입력 방식. 도시명과 장소명이 열로 나뉜 엑셀 파일을 그대로 넣으면 동작해야 했다. 기존에 쓰던 목록 엑셀을 그대로 쓸 수 있어야 했으니까. 수집 항목도 정리가 필요했다. 평점과 리뷰 수는 숫자만 깔끔하게, 주소는 전체 주소로, 전화번호와 웹사이트는 있는 것만, 그리고 예약 플랫폼 정보까지 — 총 7가지 항목을 장소마다 뽑아야 했다.
여기에 예외 처리 조건이 붙었다. 검색했는데 결과가 리스트로 나오면 어떻게 할 건지, 임시 휴업이나 폐업 상태면 어떻게 처리할 건지, 아예 검색 결과가 없으면 어떻게 할 건지. 이런 케이스마다 그냥 넘어가는 게 아니라 "왜 못 뽑았는지"를 사유로 남겨달라는 요구도 있었다. 나중에 수작업으로 보완할 때 어디를 봐야 하는지 알아야 하니까.
크롬 브라우저와 연동
구글 지도의 장소 페이지는 단순한 HTML이 아니다. 화면이 로딩되고 나서도 데이터가 나중에 채워지는 구조라, 페이지 소스만 가져와서는 정보를 뽑을 수 없다. 그래서 실제 크롬 브라우저를 띄워서, 사람이 검색하는 것과 동일하게 동작하는 방식을 택했다. 검색창에 입력하고, 결과 페이지가 완전히 로딩되길 기다리고, 거기서 필요한 데이터를 추출하는 순서다.
평점은 "별 4.4개" 같은 텍스트에서 숫자만 뽑아내고, 리뷰 수는 "(1,112)" 같은 괄호 안 숫자를 파싱한다. 좌표는 URL에 포함된 위도/경도를 추출하고, 주소와 전화번호와 웹사이트는 각각의 버튼 요소에서 텍스트를 가져온다. 예약 정보는 "예약하기" 섹션이 있을 때만 예약 플랫폼 이름을 추출하는 식이다.
구글 지도의 HTML 구조가 워낙 복잡하고 자주 바뀌기 때문에, 각 항목마다 선택자를 여러 개 준비해두고 순서대로 시도하는 방어적 설계를 했다. 하나가 안 되면 다음 걸 시도하는 식이라, 구글이 페이지 구조를 약간 바꿔도 바로 못 쓰게 되지 않는다.


개발한 프로그램의 GUI와, 실행될 때 나타나는 로그

프로그램에 엑셀 파일을 넣고 실행하면 자동으로 구글맵에서 데이터를 가져오는 형식
하루 종일이 자동 수집 한 번으로
결과를 정리하면 이렇다. 기존에 수백 건의 매장 정보를 하루 종일 수작업으로 옮겨 적던 게, 엑셀 파일 불러오고 시작 버튼 누르면 프로그램이 알아서 수집해준다. 한 건당 대략 5~8초 정도 걸리니까, 300건이면 30~40분이면 끝난다. 그 사이에 다른 일을 하면 된다.
수집이 끝나면 엑셀 저장 버튼 한 번으로 결과가 정리된 파일이 나온다. 번호, 도시명, 장소명, 평점, 리뷰 수, 위도/경도, 주소, 전화번호, 웹사이트, 예약 플랫폼, 그리고 크롤링 사유까지 — 성공한 건, 임시 휴업인 건, 폐업인 건, 검색 리스트로 나온 건이 한눈에 구분된다. 나중에 수작업으로 보완해야 할 건만 필터링해서 처리하면 되니까, 전체 업무 시간이 크게 줄었다.
사용 흐름은 단순하다. 프로그램을 켜고, 엑셀 파일을 선택하고, 시작 버튼을 누르면 된다. 진행 바와 로그 창에서 몇 번째까지 진행됐는지, 어떤 매장에서 어떤 결과가 나왔는지 실시간으로 확인할 수 있다. 급하면 중지 버튼으로 현재 작업까지만 완료하고 멈출 수 있다.

엑셀로 출력시 나타나는 데이터의 모습
크롤링 자동화에서 중요한 건 결국 예외 처리였다
이 프로젝트에서 가장 시간을 많이 쓴 부분은 사실 예외 처리다. 검색하면 바로 장소 페이지가 뜨는 경우도 있지만, 비슷한 이름의 장소가 리스트로 나오는 경우도 있다. 장소 페이지에 들어갔는데 임시 휴업이나 폐업 상태인 경우도 있다. 어떤 매장은 전화번호가 없고, 어떤 매장은 예약 섹션 자체가 없다. 이런 케이스를 하나하나 분기 처리하고, "왜 수집을 못했는지"까지 기록으로 남기는 게 실무에서 쓰이는 프로그램의 조건이었다.
구글 지도처럼 구조가 복잡한 사이트에서 데이터를 뽑는 일은, 단순히 기술을 아는 것만으로는 부족하다. 실제 업무에서 어떤 예외가 나오는지, 못 뽑은 데이터를 어떻게 후처리하는지까지 알아야 쓸 수 있는 프로그램이 나온다.
비슷한 종류의 데이터 수집은 모두 가능하다. 그것이 구글 지도든, 네이버 지도든, 어떤 플랫폼이든 위처럼 동일한 작업을 반복하고 있다면, 자동화할 수 있는 범위가 생각보다 넓으니 자동화를 해서 좀 더 편하게 일을 할 수 있으면 좋겠다.


'자동화 프로그램' 카테고리의 다른 글
12개월 급여대장 병합부터 원장 대조까지 자동 병합 및 변환 프로그램 만들기 (1) 2026.04.10 스레드(Threads) 자동 게시글 작성 프로그램 만들기 (2) 2026.04.10 인크루트 포지션 제안 자동화 프로그램 만들기 (0) 2026.04.02 컴퓨존 부품 매물 구매 매크로 프로그램 만들기 (0) 2026.03.20 문서24 문서 공문 발송 자동화 프로그램 만들기 (0) 2026.03.19