반응형
오늘은 셀레니움을 사용하여 웹 페이지를 스크롤하는 방법에 대해 알아보겠습니다.
셀레니움은 웹 브라우저를 제어할 수 있는 오픈 소스 프레임워크입니다. 웹 페이지를 자동으로 탐색하거나 테스트하는 데 사용됩니다.
셀레니움으로 웹 페이지를 스크롤하는 방법은 크게 세 가지가 있습니다.
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를 지정하면 스크롤이 요소의 가운데로 이루어집니다.
이렇게 다양한 방법으로 셀레니움을 사용하여 웹 페이지를 스크롤할 수 있습니다.
'파이썬 > 크롤링' 카테고리의 다른 글
셀레니움에서 이미지 비활성화 : 최적화 (0) | 2024.01.29 |
---|---|
셀레니움에서 페이지가 로딩이 될 때까지 기다리는 방법 (2) | 2024.01.28 |
셀레니움의 키보드 : selenium.webdriver.common.keys (0) | 2024.01.24 |
웹 자동화의 핵심 : 셀레니움의 WebElement 란? (0) | 2024.01.23 |
셀레니움 요소 찾기 : find_element와 find_elements (0) | 2024.01.19 |