연재 데이터 항해 훈련 일지

약 1분

Selenium 환율 수집 자동화, 예외 처리와 DB 적재

Selenium으로 하나은행 환율을 수집하면서 공휴일·오류 상황을 방어하고 외부 dbio 모듈로 DB에 적재했다. 크롤링은 현실에서 오류를 만나며 완성해 가는 일이었다.

TrainingScrapingSelenium

코드 1, 코드 2, ... 성공, 최종

이 노트북에서 인상 깊었던 건 셀 제목들이었다. 코드 1 → 수집 오류: HTML을 잘못 불러온다 → 성공 → 최종 → 수정. 크롤링은 한 번에 완성되지 않는다. 오류를 만나고, 원인을 찾고, 고치는 과정 그 자체가 기록으로 남아 있었다.

모듈을 불러오는 경로 설정

작업 파일과 공용 모듈(dbio)의 위치가 달라서 sys.path 에 경로를 추가하는 법을 배웠다.

import sys, os
target_dir = os.path.abspath("../../")
if target_dir not in sys.path:
    sys.path.append(target_dir)
from dbio import to_db

공휴일 대응 로직

환율은 영업일에만 고시된다. 그래서 특정 날짜에 데이터가 없을 때를 대비한 방어 로직을 함수 안에 넣었다. 단순히 수집만 하는 데 그치지 않고 "데이터가 없는 날"이라는 예외 상황을 정상 흐름으로 처리하는 감각을 익혔다.

정제 후 DB 적재

수집한 원본을 pandas 로 정제하고 앞서 만든 to_db() 모듈 함수로 MySQL에 저장했다. 수집 코드와 DB 입출력 코드를 분리(모듈화) 하니, 다른 프로젝트에서도 from dbio import to_db 한 줄로 재사용할 수 있었다.

정리