반응형
selenium으로 크롤링을 하다보면 간혹 스크롤을 내릴때마다 자료가 추가되는 사이트가 있는데, 그 때 유용하게 쓰일 스크롤을 내리는 함수이다.
def repeat_scroll(self, driver):
#스크롤 내리기 전 위치
scroll_location = driver.execute_script("return document.body.scrollHeight")
while True:
#현재 스크롤의 가장 아래로 내림
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
#전체 스크롤이 늘어날 때까지 대기
time.sleep(2)
#늘어난 스크롤 높이
scroll_height = driver.execute_script("return document.body.scrollHeight")
#늘어난 스크롤 위치와 이동 전 위치 같으면(더 이상 스크롤이 늘어나지 않으면) 종료
if scroll_location == scroll_height:
break
#같지 않으면 스크롤 위치 값을 수정하여 같아질 때까지 반복
else:
#스크롤 위치값을 수정
scroll_location = driver.execute_script("return document.body.scrollHeight")
반응형