Сделайте снимок живого потока - PullRequest
0 голосов
/ 26 сентября 2019

Так что я пытаюсь сделать скриншот живого трансляционного движения и ничего больше.Но по некоторым причинам размеры просто не установлены правильно.Ранее я получал правильные размеры / скриншот на другом мониторе, но теперь я думаю, что я как-то по сути жестко запрограммировал размеры.Как мне сделать получение размеров достаточно независимым для платформы?Раньше местоположение было задано правильно, но теперь один из двух элементов продолжает иметь значение 0. И высота всегда кажется равной 0. Я получаю неправильный элемент id элемента со страницы подергивания?

import os
import time
from selenium import webdriver
from PIL import Image
from io import BytesIO

class TwitchScreenshotGrabber:
    def __init__(self, channel_url):
        self.channel_url = channel_url

    def grab_screenshot_from_livestream(self):
        browser = webdriver.Chrome('/Users/hellothere/Downloads/chromedriver')
        browser.get(self.channel_url)

        time.sleep(5)

        element = browser.find_element_by_id('default-player')
        location = element.location
        size = element.size # why isnt it getting a height value????

        png = browser.get_screenshot_as_png() # saves screenshot of entire page

        browser.quit()

        image = Image.open(BytesIO(png))
        cropped_image = self.crop_png(image, location, size)

        self.save_screenshot(cropped_image)

    def crop_png(self, image, location, size):
        print(location, size)
        left = location['x']
        top = location['y']
        right = location['x'] + size['width']
        bottom = location['y']
        return image.crop((left, top, right, bottom))
...