Снимок экрана Python Selen не получить всю страницу
Я пытаюсь создать общий веб-сканер, который перейдет на сайт и сделает снимок экрана. Я использую Python, Selnium и PhantomJS. Проблема в том, что скриншот не захватывает все изображения на странице. Например, если я пойду к вам в трубу, он не будет снимать изображения под изображением главной страницы. (У меня недостаточно высокого представителя, чтобы опубликовать снимок экрана) Я думаю, что это может быть связано с динамическим контентом, но я пробовал использовать функции ожидания, такие как неявное ожидание и методы set_page_load_timeout. Поскольку это общий сканер, я не могу дождаться определенного события (я хочу сканировать сотни сайтов).
Можно ли создать общий веб-сканер, который может сделать снимок экрана, который я пытаюсь сделать? Код, который я использую:
phantom = webdriver.PhantomJS()
phantom.set_page_load_timeout(30)
phantom.get(response.url)
img = phantom.get_screenshot_as_png() #64-bit encoded string
phantom.quit
1 ответ
Ваше предложение решило проблему. Использовал следующий код (частично украден из ответа на другой вопрос):
driver = webdriver.PhantomJS()
driver.maximize_window()
driver.get('http://youtube.com')
scheight = .1
while scheight < 9.9:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
scheight += .01
driver.save_screenshot('screenshot.png')