안녕하세요, 1인 사업가와 개발자 여러분! 펭귄 뮤지엄입니다. 🐧
지난 포스팅에서는 Gemini AI의 힘을 빌려 금영(KY) 노래방 데이터를 수집하는 과정을 보여드렸죠?
오늘은 그 두 번째 여정으로, 또 다른 거인 TJ 노래방 데이터 수집에 도전해 보려 합니다.
하지만 이번에는 조금 다른 방식을 사용해 볼 거예요.
코딩에 매달리는 대신, 아주 강력하고 편리한 '서비스'를 이용해 데이터를 크롤링하는 과정을 전부 보여드리겠습니다.
개발 지식이 조금 부족하더라도 '이런 방법도 있구나!' 하고 재미있게 보실 수 있을 겁니다.
그럼, 지금 바로 시작해 볼까요?
🧐 1단계: 적을 알자! TJ 노래방 사이트 분석
웹 크롤링의 첫걸음은 언제나 목표 사이트를 철저히 분석하는 것입니다.
(이 부분은 약간의 개발 지식이 필요하지만, 핵심만 짚어 드릴게요!)
TJ 노래방 사이트를 열어보니, 지난번 금영(KY) 노래방과는 결정적인 차이점이 있었습니다.
바로 '동적 웹사이트(Dynamic Website)'라는 점입니다.
- 정적 웹사이트 (지난번 금영): 페이지에 접속하면 모든 데이터가 한 번에 HTML 문서에 담겨 옵니다. 그래서 페이지를 통째로 다운로드해서 분석하면 그만입니다.
- 동적 웹사이트 (이번 상대 TJ): 뼈대만 있는 페이지가 먼저 뜨고, 사용자의 행동에 따라 필요한 데이터를 API로 별도 요청해서 화면에 보여줍니다. 마치 소셜 미디어 피드처럼요.
이 방식 때문에 지난번처럼 단순히 페이지를 다운로드해서는 노래 데이터를 얻을 수 없습니다.
보통 이럴 땐 'Selenium' 같은 도구를 이용해 실제 사용자가 브라우저를 조작하는 것처럼 자동화해야 하는데요...
솔직히 말씀드리면, 과거 회사에서 크롤링 업무를 하며 이 방식을 질리도록 해봤기에 정말 피하고 싶었습니다.
(상상 이상의 노가다가 펼쳐지거든요. 😫)
설상가상으로 더 큰 문제가 있었습니다.
금영 사이트와 달리, TJ에는 '전체 곡 리스트'를 볼 수 있는 페이지가 존재하지 않았습니다.
통합 검색 기능은 있지만, 모든 노래를 한눈에 볼 방법이 없다니! 제가 세상의 모든 일본 가수 이름을 하나하나 검색창에 쳐볼 수도 없는 노릇이고... 이건 정말 큰 난관이었습니다.
과연 저는 이 문제를 어떻게 해결했을까요?
✨ 2단계: 발상의 전환, "없으면 만들면 되지!"
크롤러를 만들기 전에, '전체 곡 리스트 부재'라는 근본적인 문제부터 해결해야 했습니다.
웹사이트를 계속 분석하며 한참을 고민하던 중, 한 가지 기능이 눈에 들어왔습니다.
바로 통합 검색창의 '곡 번호'로 검색하는 기능이었습니다.
"잠깐, 노래방 번호는 결국 0부터 9까지의 숫자로 이루어져 있잖아? 이걸 활용하면 어떨까?"
이 아이디어가 머리를 스쳤습니다.
0~9 범위의 숫자들을 순서대로 입력해서 검색하면, 숨겨져 있던 모든 노래 리스트를 뽑아낼 수 있지 않을까요?
곧바로 테스트해 보니, 정말로 검색이 잘 되었습니다! 문제를 해결할 실마리를 찾은 순간이었죠.
이 아이디어를 떠올린 과거의 저, 셀프 칭찬 한번 해주고 가겠습니다. 😉
자, 이제 남은 마지막 문제는 '동적 웹사이트'입니다.
도저히 Selenium을 쓰기 싫었던 저는, 이번에야말로 전문 크롤링 서비스를 이용해보기로 마음먹었습니다.
🛠️ 3단계: 나에게 맞는 연장 찾기, No-Code 크롤링 서비스 전격 비교
웹 크롤링 서비스는 프로그래밍 지식이 없어도 마우스 클릭과 드래그만으로 웹 데이터를 수집할 수 있게 해주는 강력한 도구입니다.
제가 알아본 대표적인 서비스는 다음과 같습니다.
서비스 명칭 | 주요 특징 & 장점 | 단점 & 가격 | 추천 사용자 |
Octoparse | - 가장 직관적인 UI (포인트 앤 클릭) - 복잡한 작업(페이지네이션, 로그인, 폼 입력) 자동화 - 클라우드 기반 자동화 (PC OFF 상태에서도 실행) - 다양한 내보내기 포맷(Excel, CSV, JSON, DB 연동) - IP 로테이션, 캡챠 대응 등 차단 방지 기능 |
- Cloudflare 등 강력한 보안 사이트는 어려울 수 있음 - 고급 기능은 유료 (월 $89~) |
초보자, 대규모/반복적 데이터 수집이 필요한 개인/팀 |
ScrapeStorm | - AI 기반 자동 패턴 인식 (URL만 넣어도 추출) - 플로우차트 모드로 복잡한 흐름 설계 - 가격 경쟁력 (월 $49~) |
- 대량 크롤링 시 간혹 작업 중단 이슈 - 클라우드 기능은 일부 플랜에서만 제공 |
반복적 대량 크롤링, 국내 서비스 선호 사용자 |
Listly | - 크롬/웨일 확장프로그램 (설치 즉시 사용) - 클릭 몇 번으로 간단히 데이터 추출 후 엑셀 저장 - 매우 빠르고 간편함 |
- 무료는 월 100개 링크 제한 - 복잡한 사이트, 대량 데이터 수집에는 한계 |
단순/소규모 데이터 수집 (상품, 블로그 등)이 필요한 마케터, 실무자 |
해시스크래퍼 | - 국내 서비스, 강력한 모니터링 및 유지보수 - 법적 이슈 최소화 (공개 데이터만 수집) - 전문가 지원 중심, 맞춤형 개발 가능 |
- 완전한 노코드보다는 반자동/맞춤형 서비스 - 셀프 서비스보다 전문가 지원이 필요할 때 적합 |
국내 SNS, 복잡한 사이트, 법적 리스크 최소화가 중요한 기업/개인
|
고심 끝에 이번 TJ 노래방 데이터 크롤링에는 Octoparse를 사용하기로 결정했습니다.
별도의 기술적 허들 없이 드래그 앤 드롭만으로도 충분히 원하는 데이터를 수집할 수 있겠다는 확신이 들었기 때문입니다.
🚀 4단계: 실전! Octoparse로 데이터 추출하기
Octoparse 사용법은 생각보다 훨씬 간단했습니다.
URL 입력
TJ 노래방의 검색 결과 페이지 URL을 복사하여 Octoparse 프로그램에 붙여넣습니다.
프로그램이 자동으로 사이트 구조를 분석하기 시작합니다.
워크플로우 수정
분석이 끝나면, Octoparse가 추천하는 자동화 작업 흐름(워크플로우)이 나타납니다. 여기서 우리에게 필요한 데이터만 남도록 워크플로우를 수정합니다. 저는 '노래방 번호', '가수 이름', '곡 제목'만 필요했기에 나머지 불필요한 정보는 모두 제거했습니다.
페이지네이션 확인 및 실행
데이터가 여러 페이지에 걸쳐 있으므로, '다음 페이지' 버튼을 클릭하는 동작(페이지네이션)이 잘 설정되었는지 확인합니다. 모든 설정이 끝나면 '실행' 버튼을 눌러 로컬 PC에서 데이터 수집을 시작합니다.
모든 과정이 순조롭게 진행되었고, 데이터가 차곡차곡 쌓이는 것을 확인할 수 있었습니다!
👍 솔직 후기: Octoparse, 정말 쓸만했을까?
솔직히 Octoparse를 처음 사용할 땐 반신반의했습니다.
'이게 정말 잘 될까?', '결정적인 순간에 유료 결제를 유도하는 건 아닐까?', '괜히 시간만 낭비하는 건 아닐까?' 하는 걱정이 많았죠.
사이드 프로젝트를 하는 사람에게 시간은 생명이니까요.
하지만 실제로 사용해 보니 모든 걱정은 눈 녹듯 사라졌습니다.
앞으로 데이터 크롤링이 필요할 때 적극적으로 이용할 생각입니다.
장점:
- 압도적인 간편함: 코드로 작성했다면 며칠이 걸렸을 작업을 단 1시간 내외로 끝낼 수 있었습니다.
- 시간 절약: 복잡한 설정 없이 직관적인 UI로 빠르게 자동화 흐름을 만들 수 있습니다.
- 후처리 기능: 데이터 수집이 끝나면 중복된 데이터를 자동으로 삭제해주는 기능이 있어 데이터 정제에도 큰 도움이 됩니다.
아쉬운 점:
- 약간의 버벅임: 프로그램이 아주 가끔 무겁다는 느낌이 들 때가 있었습니다.
- 페이지네이션 종료 조건: 제가 기능을 못 찾은 것일 수도 있지만, 마지막 페이지에 도달했을 때 자동으로 멈추는 조건을 설정하기가 어려웠습니다. 그래서 계속 지켜보다가 수동으로 중지하고, 다음 숫자 범위의 URL을 넣어주는 작업을 반복해야 했습니다. (혹시 해결 방법을 아시는 분이 계시다면, 댓글로 꼭 알려주세요! 🙏)
몇 가지 아쉬운 점에도 불구하고, 전반적인 사용자 경험은 매우 훌륭했습니다.
코딩 없이 이렇게 복잡한 작업을 해냈다는 점에서 큰 만족감을 느꼈습니다
✨ 마무리하며: 데이터 수집 완료, 다음 단계는?
자, 이렇게 우리는 TJ 노래방의 데이터까지 성공적으로 수집했습니다.
저희 서비스의 핵심 타겟인 금영(KY)과 TJ의 데이터가 모두 모였으니, 이제 재료 준비는 끝났다고 볼 수 있겠네요!
하지만 이 날것의 데이터들을 사용자가 바로 이용할 수는 없겠죠?
다음 포스팅에서는 수집한 데이터들을 사용 가능한 형태로 만드는 '데이터 정제' 과정을 자세히 보여드리겠습니다.
오늘도 긴 글 읽어주셔서 감사합니다. 다음 편에서 뵙겠습니다!
'사이드 프로젝트' 카테고리의 다른 글
노래방 일본 노래 검색 서비스 | 제 5부 - 크롤링으로 노래방 노래 데이터 추출하기 (2) | 2025.06.07 |
---|---|
완벽함 대신 '실행'을 택하다: 노코드 툴로 사이드 프로젝트 빠르게 시작하기 (1) | 2025.06.06 |
미워도 다시한번, 나의 사이드 프로젝트 도전기! (3) | 2025.06.05 |
노래방 일본 노래 검색 서비스 | 제 4부 - AI를 이용해 ERD로 Prisma 코드 추출하기 (0) | 2025.06.04 |
노래방 일본 노래 검색 서비스 | 제 3부 - 데이터베이스 모델링 하기(feat. ERD Cloud를 이용해서 설계하기) (0) | 2025.06.03 |