부제 : caffeinate 명령어를 활용한 안정적인 셀레니움 크롤링 환경 구성
서론
최근 셀레니움을 사용해 여러 URL을 크롤링하는 자동화 작업을 진행했습니다.
작업 대상은 총 400개 이상의 페이지였고, 각 페이지는 자바스크립트 기반으로 콘텐츠를 렌더링하는 구조였습니다. 이 때문에 일반적인 requests 방식이 아닌 Selenium을 통한 브라우저 렌더링이 필요했습니다.
문제는 작업을 실행한 후 일정 시간이 지나면서 발생했습니다.
macOS의 자동 잠자기 기능이 작동하며, 크롤링이 중단되는 이슈가 발생한 것입니다.
문제 상황
- 셀레니움으로 크롤링 중인데, 중간에 맥북이 잠자기에 들어감
- 결과적으로 driver.get() 이후 아무 동작도 수행되지 않음
- 로그를 확인해도 별다른 오류 없이 조용히 멈춰 있음
해결 방법: caffeinate 명령어
macOS에는 caffeinate라는 기본 명령어가 존재합니다.
이 명령어는 실행 중인 터미널 세션이 유지되는 동안 잠자기 및 디스플레이 꺼짐을 방지해 줍니다.
사용법
caffeinate
위 명령어를 입력하면, 해당 터미널 세션이 켜져 있는 동안 시스템이 잠자기에 들어가지 않습니다.
옵션 설명
옵션 | 설명 |
-t <초> | 지정한 시간(초) 동안만 유지 |
-d | 디스플레이 꺼짐 방지 |
-i | 시스템 잠자기 방지 |
예시
caffeinate -t 7200 # 2시간 동안 잠자기 방지
셀레니움 크롤링과 함께 사용하기
크롤링을 실행하기 전, caffeinate 명령어를 실행해두면
작업이 끝날 때까지 시스템이 잠자지 않고 안정적으로 HTML 렌더링을 진행할 수 있습니다.
예시 실행 흐름
# 1. caffeinate 실행
caffeinate
# 2. 별도 터미널에서 크롤링 실행
python crawl_htmls.py
또는 한 줄로 함께 실행할 수도 있습니다:
caffeinate python crawl_htmls.py
마무리
장시간 실행되는 작업에서 macOS의 자동 절전 기능은 의도치 않게 작업을 중단시킬 수 있습니다.
특히 셀레니움과 같이 실제 브라우저 환경을 사용하는 경우, 중간에 시스템이 잠들면 작업이 실패하게 됩니다.
caffeinate는 별도의 앱 설치 없이도 이러한 문제를 간단하게 방지할 수 있는 방법으로,
자동화 작업이나 장시간 처리되는 스크립트를 실행할 때 유용하게 사용할 수 있습니다.
관련 링크
'Dev > MacOs' 카테고리의 다른 글
Mac에서 PNG를 JPG로 손쉽게 변환하기 (3) | 2025.04.28 |
---|---|
Mac 사용자라면 꼭 알아야 할 단축키 총정리 (2) | 2025.04.16 |
Mac OS safari 에서 궁서체 안보기!! (0) | 2024.04.18 |