파이썬/크롤링

셀레니움에서 스크롤하는 5가지 방법 - Selenium : Scroll

코샵 2024. 1. 14. 11:59
반응형

오늘은 셀레니움을 사용하여 웹 페이지를 스크롤하는 방법에 대해 알아보겠습니다.

셀레니움은 웹 브라우저를 제어할 수 있는 오픈 소스 프레임워크입니다. 웹 페이지를 자동으로 탐색하거나 테스트하는 데 사용됩니다.

셀레니움으로 웹 페이지를 스크롤하는 방법은 크게 세 가지가 있습니다.

 

1. 원하는 높이 Y까지 스크롤하기

driver.execute_script("window.scrollTo(0, Y)")

위 코드는 window.scrollTo() 메서드를 사용하여 Y 높이까지 스크롤합니다. Y는 스크롤 위치를 지정하는 숫자입니다.

예를 들어, 다음 코드는 웹 페이지의 맨 위에서 100픽셀 아래로 스크롤합니다.

driver.execute_script("window.scrollTo(0, 100)")

 

2. 문서의 끝까지 1회 스크롤하기

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

위 코드는 document.body.scrollHeight 속성을 사용하여 웹 페이지의 끝까지 스크롤합니다.

 

3. 문서의 제일 끝까지 스크롤하기

SCROLL_PAUSE_TIME = 0.5

# Get scroll height
last_height = driver.execute_script("return document.body.scrollHeight")

while True:
    # Scroll down to bottom
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

    # Wait to load page
    time.sleep(SCROLL_PAUSE_TIME)

    # Calculate new scroll height and compare with last scroll height
    new_height = driver.execute_script("return document.body.scrollHeight")
    if new_height == last_height:
        break
    last_height = new_height

위 코드는 while 루프를 사용하여 웹 페이지의 끝까지 스크롤합니다. SCROLL_PAUSE_TIME 변수는 스크롤이 완료될 때까지 기다리는 시간(초)입니다.

 

4. Page Down 키를 이용한 스크롤하기

driver.find_element(By.XPATH, '/html/body').send_keys(Keys.PAGE_DOWN)

위 코드는 Keys.PAGE_DOWN 키를 사용하여 웹 페이지를 한 페이지 아래로 스크롤합니다.

 

5. 내가 원하는 요소가 가운데 오도록 스크롤하기

driver.execute_script("arguments[0].scrollIntoView({block : 'center'});", 원하는 요소)

위 코드는 scrollIntoView() 메서드를 사용하여 원하는 요소가 웹 페이지의 가운데에 오도록 스크롤합니다. block 속성은 스크롤 방향을 지정합니다. center를 지정하면 스크롤이 요소의 가운데로 이루어집니다.

 

이렇게 다양한 방법으로 셀레니움을 사용하여 페이지를 스크롤할 있습니다.