Вы можете использовать эту функцию для прокрутки бесконечно до тех пор, пока прокрутка больше не станет возможной (больше не будет загруженного содержимого):
def scroll(driver, timeout):
scroll_pause_time = timeout
# 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:
# If heights are the same it will exit the function
break
last_height = new_height
Использование scroll(driver, 2)
приведет к прокрутке, подождите 2 секунды затем проверьте, изменилась ли высота прокрутки (новое содержимое). Если нет, то, вероятно, она достигла конца, что приведет к разрыву l oop.
Примечание: Adjust аргумент тайм-аута (в секундах) в зависимости от того, сколько в среднем времени требуется для загрузки содержимого.