Selenium 셀레니움 div 스크롤하기

공부의 일환으로 댓글을 스크랩해오는 스크래퍼 기능을 만들고 있었다.

그러다가 div 박스 안에 구현된 댓글 리스트를 스크롤 했어야 했는데 이게 아무리 원래 했던 방법인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 현재 스크롤 위치 가져오기
scroll_position = 0
scroll_height = browser.execute_script("return document.documentElement.scrollHeight")

# 페이지 끝까지 스크롤 다운
while scroll_position < scroll_height:
    # 스크롤 다운
    browser.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")

    # 대기 시간 부여
    time.sleep(2)

    # 스크롤 위치와 높이 갱신
    scroll_position = scroll_height
    scroll_height = browser.execute_script("return document.documentElement.scrollHeight")

당연히 되지 않았다. 문서의 <body> 부분이라 div 박스를 내릴 수는 없었다 그래서 구글링해서 div 박스 자체를 건드리는 코드를 찾았다.

1
2
3
4
5
# 페이지 스크래핑을 위한 반복문
while True:
    # div 스크롤 하기
    browser.execute_script("arguments[0].scrollBy(0, 4000)", inner_page)
    time.sleep(1)

댓글남기기