공공데이터 크롤러 만들기
Playwright · http_utils · APScheduler 로 윤리적 크롤러를 짓는 6단계.
- 난이도
- 중급
- 강의
- 6
NPS · DART · HIRA 같은 공공 데이터는 누구나 접근 가능하지만 자동화에는 규칙이 있습니다. robots.txt · rate limit · 이용약관. 윤리적이고 지속 가능한 크롤러를 짓는 6 단계.
누구를 위한 강좌인가
- 공공데이터 포털 대신 직접 수집 · 가공이 필요한 분
- 크롤러가 차단당해 본 경험이 있는 분
- 증분 수집 · 스케줄 · 관측 체계를 갖추고 싶은 분
다 끝내면 가능한 것
- Playwright 로 동적 페이지 · BS4 로 정적 페이지 분리
- robots.txt + rate limit + backoff 규칙 적용
- APScheduler 로 KST 기반 스케줄
- 공공 API · 관계부 공개 CSV · 웹 크롤링 조합
- 증분 수집 · 중복 해소 · 체크포인트
- 헬스체크 · 실패 알림
단계 흐름
안전한 수집 파이프라인
윤리·법적 경계를 확인한 뒤 수집 도구를 고릅니다.
rate limit과 스케줄로 원본 시스템의 부하를 제한합니다.
증분 처리와 중복 제거로 재실행 가능한 저장 흐름을 만듭니다.
지표와 알림으로 실패와 데이터 지연을 발견합니다.
크롤러는 "외부 사이트를 침범하지 않으면서 우리 DB 를 비손실로 갱신" 이 목표. 위 흐름은 그 두 축을 차례로 보강합니다.
단계 구성
- 크롤러 윤리 · 법적 경계 — robots.txt · 이용약관 · 개인정보
- 정적 vs 동적 — BS4 + Playwright — 언제 어떤 도구
- rate limit · 재시도 · backoff — exponential + jitter
- APScheduler + KST 스케줄 — 멱등 ·
replace_existing=True· 중복 실행 방어 - 증분 수집 · 중복 해소 — 체크포인트 · unique key · 변경 감지
- 관측 · 알림 — 성공률 · latency · Slack · PagerDuty
전제 — python-data-pipeline 강좌 완주.