본문 바로가기
빅데이터 & AI

[크롤링] Selenium을 이용한 네이버 뉴스 크롤링 (1) - 환경 설정

by heosj 2025. 3. 25.
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)