from selenium import webdriver
from bs4 import BeautifulSoup
import time
def main():
# options
options = webdriver.ChromeOptions()
# headless
options.add_argument('headless')
driver = webdriver.Chrome('chromedriver.exe', options=options)
driver.implicitly_wait(3)
url = 'https://channels.vlive.tv/FE123/home'
driver.get(url)
time.sleep(3)
# -----------------------------------------------------------------------------------------
SCROLL_PAUSE_TIME = 1
# 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 > 82590:#== last_height:
break
last_height = new_height
print(last_height, 'finished scrolling')
# -----------------------------------------------------------------------------------------
html = driver.page_source
print(html)
if __name__ == "__main__":
main()
Этот код открывает безголовый chrome и перемещается к URL-адресу и прокручивает вниз, чтобы загрузить динамическое c содержимое в new_height> 82590 и копировать html.
Проблема заключается в том, когда Я прокручиваю немного больше, например new_height> 82591, он вылетает в 'html = driver.page_source' и не печатает html. Страница может быть прокручена до 120000+. И другая страница, которую можно прокрутить на более чем 120000, была хороша с этим кодом.
Когда он падает, я получил сообщение, заполненное связкой html в одной строке, а не распечатанное с печати (html) и следующее.
(Session info: headless chrome=80.0.3987.122)
Process finished with exit code 1
Я не знаю, что происходит между высотой 82590 и 82591, но что-то там не так ...