Selenium을 이용한 크롤링을 위해 필요한 환경 설정
1. Anaconda 설치 및 가상환경 설정
2. 필수 라이브러리 설치
3. 웹드라이버 설치
4. 테스트 실행
1. Anaconda 설치 및 가상환경 설정
Anaconda 설치
Download Anaconda Distribution | Anaconda
Download Anaconda's open-source Distribution today. Discover the easiest way to perform Python/R data science and machine learning on a single machine.
www.anaconda.com
아나콘다 공식 사이트에서 이메일을 입력하면 링크를 보내주는데, 기본 설정된 그대로 설치했다
설치가 완료되면 Anaconda Navigator와 Anaconda Powershell Prompt가 생긴 것을 확인할 수 있다

가상환경 생성
Anaconda Powershell Prompt을 실행하여 가상환경을 생성하고 활성화한다
# 가상환경 생성
conda create -n 가상환경이름 python=버전
# 가상환경 활성화
conda activate 가상환경이름
# 가상환경 비활성화
conda deactivate
# 가상환경 리스트 확인
conda env list
# 가상환경 삭제
conda env remove -n 가상환경이름

가상환경이 필요한 이유
- 여러 프로젝트에서 다른 버전의 라이브러리를 사용해야 하는 경우, 버전 충돌을 방지
- 예) A 프로젝트에서는 Selenium 4.10 사용, B 프로젝트에서는 Selenium 3.8 사용
- 시스템의 기본 Python 환경을 건드리지 않고, 프로젝트별로 안전한 개발 환경을 유지
- 설정된 환경을 그대로 복제함으로써, 다른 컴퓨터에서 프로젝트를 실행할 때 같은 환경을 맞추기 편리
# 현재 가상환경의 패키지 목록 저장
pip freeze > requirements.txt
# 다른 PC에서 같은 환경 재구성
pip install -r requirements.txt
- 프로젝트별로 원하는 Python 버전을 사용할 수 있다
2. 필수 라이브러리 설치
아나콘다 가상환경을 생성하면 기본적으로 설치된 라이브러리가 없으므로 필요한 라이브러리를 직접 설치해준다
pip install selenium
pip install undetected-chromedriver
pip install konlpy
# 또는 한 번에 설치도 가능하다
pip install selenium undetected-chromedriver konlpy
3. 웹드라이버 설치
웹드라이버는 Selenium이 브라우저를 직접 제어할 수 있도록 돕는 프로그램이다
방법 1. 수동 설치
- 크롬 주소창에 chrome://version 입력하여 크롬 버전 확인
- ChromeDriver 공식 사이트에서 해당 버전 다운로드
- exe 파일을 프로젝트 폴더에 복사한 후 코드에서 드라이버 경로 지정
- 특정 버전이 필요할 때 직접 관리가 가능하지만, 크롬이 업데이트되면 WebDriver도 업데이트 해야하는 불편함이 있다
from selenium import webdriver
driver = webdriver.Chrome(executable_path="chromedriver.exe")
방법 2. 자동 설치 webdriver-manager
- 버전에 맞는 드라이버를 자동으로 다운로드하고 업데이트 한다
- 보안 정책이 적용된 서버에서는 실행이 어려울 수 있다
pip install webdriver-manager
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
방법 3. 자동 설치 undetected-chromedriver
- 일부 웹사이트에서 Selenium을 사용한 크롤링을 차단할 가능성이 있다
- undetected-chromedriver를 사용하면 자동화 탐지를 우회할 수 있다
- webdriver.Chrome() 보다는 실행 속도가 느리다는 단점은 존재한다
import undetected_chromedriver as UC
driver = uc.Chrome()
※ undetected-chromedriver 옵션 정리
import undetected_chromedriver as uc
# Chrome 옵션 설정
options = uc.ChromeOptions()
# 브라우저 창 없이 실행
options.add_argument("--headless")
# GPU 가속 비활성화
options.add_argument("--disable-gpu")
# 창 크기 설정 - 일부 웹사이트는 브라우저 창 크기가 비정상적이면 봇으로 판단
options.add_argument("--window-size=1920x1080")
# 샌드박스 모드 비활성화 (Linux 필수)
options.add_argument("--no-sandbox")
# 팝업 차단 비활성화
options.add_argument("--disable-popup-blocking")
# Selenium 탐지 방지 (필수) - 봇이 아닌 일반 사용자처럼 보이게 함
options.add_argument("--disable-blink-features=AutomationControlled")
# 드라이버 실행
driver = uc.Chrome(options=options)'빅데이터 & AI' 카테고리의 다른 글
| [딥러닝] 3주차 - 파이썬, 딥러닝 라이브러리, 넘파이 Numpy, 행렬 연산 (0) | 2025.04.01 |
|---|---|
| [딥러닝] 2주차 - 머신러닝의 종류, 회귀와 분류 (0) | 2025.03.31 |
| [딥러닝] 1주차 - 딥러닝, 인공지능, 기계학습, 퍼셉트론 (0) | 2025.03.31 |
| [크롤링] Selenium을 이용한 네이버 뉴스 크롤링 (0) - Crawling & Selenium (0) | 2025.03.25 |