Как сделать полный снимок экрана данного URL? - PullRequest
0 голосов
/ 31 мая 2019

Я хочу сделать скриншот всего сайта (а не только видимой части в браузере при его открытии).Я искал решения и нашел много ответов, ни один из которых, похоже, не работает для меня.

Мой текущий подход работает для некоторых веб-сайтов:

from selenium import webdriver
import time

def createPNGChrome(url):
    DRIVER = '/Users/userName/PycharmProjects/WebsiteMonitor/Screenshots/chromedriver'
    driver = webdriver.Chrome(DRIVER)

    driver.get(url)
    time.sleep(1.5)
    element = driver.find_element_by_tag_name('body')

    screenshot = element.screenshot_as_png
    driver.quit()

    return screenshot

# works
#fullPageScreenshot = createPNGChrome('https://news.ycombinator.com/')

# works
#fullPageScreenshot = createPNGChrome('https://www.spotify.com/de/')

# fails
fullPageScreenshot = createPNGChrome('https://www.de.abbott/media-center/press-releases/05-10-2018.html')  # fails

with open('fullPageScreenshot.png', "wb") as file:
    file.write(fullPageScreenshot)

Для последнего веб-сайта (abbott) я получаюследующее исключение:

selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Cannot take screenshot with 0 height."}
  (Session info: chrome=74.0.3729.169)
  (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.14.5 x86_64)

Есть ли надежное исправление для этого подхода?Я также согласен с совершенно другими решениями, которые не используют селен, если результаты - надежные полностраничные скриншоты.

...