Selenium

[selenium] return document.body.scrollHeight이 0일때

thxxyj 2022. 7. 24. 18:18
728x90
# 현재 페이지 높이 반환
browser.execute_script('return document.body.scrollHeight')
# 페이지 맨 아래로 scroll down
browser.execute_script('window.scrollTo(0, document.body.scrollHeight')

return document.body.scrollHeight == 0 일때 (ex. youtube.com)

return document.documentElement.scrollHeight 을 사용한다.

 

스크롤 내릴때마다 새로 로딩되는 페이지를 크롤링할때

페이지 맨 아래로 내리기

prev_height = browser.execute_script('return document.documentElement.scrollHeight')
while True:
    browser.execute_script('window.scrollTo(0, document.documentElement.scrollHeight)')
    time.sleep(2)

    current_height = browser.execute_script('return document.documentElement.scrollHeight')

    if prev_height == current_height:   # 더이상 내려갈 페이지가 없다면
        break
    print(f'prev: {prev_height}, current: {current_height}')
    prev_height = current_height

print('scroll done')

https://stackoverflow.com/questions/51690101/why-execute-scriptreturn-document-body-scrollheight-with-python-selenium-ret/51702698

728x90

'Selenium' 카테고리의 다른 글

[selenium] Headless Chrome에서 user-agent 설정  (0) 2022.07.26
[bs4/selenium] 페이지 정보 가져오기  (0) 2022.07.25