본문 바로가기

Coding/Autohotkey

카카오맵 크롤링 데이터수집

728x90

프로그램 구동 모습

- 실행하면 카카오맵이 하나 뜬다

- 검색하고자 하는 곳으로 지도를 찾아가서

- 좌상단 메뉴에 특정 검색어를 검색하면, 모든 결과가 엑셀에 저장된다

제주도에서 삼겹살 키워드 검색결과 499개의 결과리스트가 순식간에 만들어졌다

웹을 제어하는 방법은 다양하다.

DOM, Selenium, WinHttp/XMLHttp, ...

논브라우징 방식인 WinHttp가 속도면에서 우수하고

때로는 사용자친화적인 브라우징이 필요할 때 Selenium을 자주 활용했지만

Selenium의 가장 치명적인 단점이 설치가 별도로 필요하다는 것. 그래서 배포에 피로감을 갖게했다.

하지만, AutoHotKey 전용 라이브러리인 Rufaydium을 활용하면 이 단점을 극복할 수 있다.

https://github.com/Xeo786/Rufaydium-Webdriver

 

GitHub - Xeo786/Rufaydium-Webdriver: Rufaydium is a WebDriver Library for AutoHotkey to support any Chromium based browser using

Rufaydium is a WebDriver Library for AutoHotkey to support any Chromium based browser using WebDriver, it will downlaod latest driver and update driver according to webbrowsers version - GitHub - X...

github.com

제작자가 직접 그렇게 설명하고있다

따라서 별도의 설치없이 배포할 수 있는 용이함이 있고,

이번 프로그램을 실행하면 처음 나오는 카카오맵창 역시 이 루페디움을 활용해서 구현했다.

(검색할 위치를 특정짓게하는것에 있어서 눈에 보이는 창보다 훌륭한건 없었다.)

 

또, 무려 CDP(Chrome DevTools Protocol) 기능을 내장하고 있다

크롬 개발도구를 컨트롤 할 수 있다는 이야기...

크롬 개발도구(F12)

루페디움의 CDP로 console창에서 입력한 명령어 그대로를 AutoHotKey에서 구현해낼 수 있었다.

덕분에 카카오맵에서 실시간으로 보여지는 화면의 좌표값을 얻어내는데에 성공.

 

이후에는 WinHttp로 데이터 수집.

COM객체로 엑셀을 잡고 뿌려주고 저장.

 

파도파도 공부해야할 건 너무 많고, 신기한것도 너무 많고, 재밌는것도 너무 많은 개발세상.