크롤링 방법 : Selenium 방식

아래는 최신 Selenium 방식을 적용하여 수정한 크롤링 방법 가이드입니다. 최신 Selenium은 Selenium Manager를 사용하여 웹 드라이버를 자동으로 관리하므로 웹 드라이버를 직접 설치하거나 경로를 지정할 필요가 없습니다.

Selenium을 이용한 웹 크롤링 방법

Selenium은 실제 브라우저를 제어하여 웹 페이지를 자동으로 탐색하고 데이터를 수집할 수 있는 도구입니다. 동적 웹 사이트나 JavaScript로 생성된 콘텐츠를 크롤링하는 데 특히 유용합니다. Selenium 4.6.0 이후로 Selenium Manager가 웹 드라이버를 자동으로 설치하고 관리해 줍니다.

1. Selenium 설치하기

먼저, 최신 Selenium을 설치해야 합니다. 터미널이나 커맨드 라인에서 다음 명령어를 실행하세요.

pip install selenium

2. 기본 코드 작성하기

아래는 Selenium을 사용하여 간단하게 웹 페이지를 크롤링하는 예제 코드입니다. 최신 Selenium Manager를 사용하여 웹 드라이버를 자동으로 관리하므로 별도의 웹 드라이버 설치가 필요하지 않습니다.

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# Selenium Manager를 통해 자동으로 웹 드라이버를 관리함
# 웹 드라이버 옵션 설정 (headless 옵션은 브라우저를 숨기고 실행하는 기능)
options = webdriver.ChromeOptions()
options.add_argument("--headless")  # 브라우저 창을 띄우지 않음 (옵션)

# 웹 드라이버 생성 (자동으로 적절한 드라이버가 설치되고 실행됨)
driver = webdriver.Chrome(options=options)

# 크롤링할 웹 페이지 열기
url = "https://naver.com"  # 원하는 URL로 변경
driver.get(url)

# 데이터 추출 (예: h1 태그의 텍스트 가져오기)
try:
    element = driver.find_element(By.TAG_NAME, "h1")
    print(element.text)  # 찾은 요소의 텍스트 출력
except Exception as e:
    print(f"Error: {e}")

# 웹 드라이버 종료
driver.quit()

3. 주요 기능 설명

  • Selenium Manager: Selenium 4.6.0부터 추가된 Selenium Manager는 웹 드라이버를 자동으로 다운로드하고 관리합니다. 사용자는 웹 드라이버 설치 경로를 지정할 필요가 없으며, Selenium이 실행 시 적절한 드라이버를 자동으로 찾고 설정합니다.
  • 옵션 설정: options.add_argument("--headless")는 브라우저가 보이지 않게 백그라운드에서 실행되도록 합니다. 필요에 따라 이 옵션을 제거하여 브라우저 화면을 띄울 수 있습니다.
  • 페이지 열기: driver.get(url)로 원하는 웹 페이지에 접속합니다.
  • 데이터 추출: find_elementfind_elements 메서드를 이용해 HTML 요소를 선택하고 텍스트나 속성을 추출할 수 있습니다. By 클래스를 사용하여 요소를 찾는 다양한 방법을 지정할 수 있습니다.
  • 브라우저 종료: driver.quit()을 호출하여 웹 드라이버를 종료합니다. 작업이 끝난 후에는 꼭 브라우저를 닫아 리소스를 해제하세요.

4. 추가 팁

  • 대기 전략 사용: time.sleep()을 사용해 대기 시간을 설정하거나, WebDriverWait을 사용해 특정 요소가 로드될 때까지 기다릴 수 있습니다. 이는 크롤링 속도를 효율적으로 관리하는 데 도움이 됩니다.
  • 복잡한 선택: CSS Selector와 XPath를 사용하여 더 정교한 요소 선택이 가능합니다. 복잡한 웹 페이지에서도 원하는 데이터를 쉽게 추출할 수 있습니다.

셀레니움을 이용한 크롤링 방법에 대해 알아봤습니다. 위 내용은 기본 셋팅이고 크롤링 하고 싶은 요소를 찾아서 활용하는 방법은 다음 기회에 다루겠습니다.

Leave a Comment