Как сделать скриншот страницы YouTube, не открывая браузер в Python или R? - PullRequest
0 голосов
/ 18 мая 2019

Я хочу сделать скриншот нескольких ссылок, принадлежащих YouTube. Я хочу сделать снимок экрана с веб-страницей, на которой будет воспроизводиться видео, а затем сделать снимок экрана или сделать снимок экрана без воспроизведения, но все это должно происходить с использованием Python или R, но они не должны открывать браузер. все это должно происходить в бэкэнде.

Любая помощь по этому вопросу будет отличной.

Заранее спасибо.

Я попытался открыть ссылку и сделать снимок экрана, используя R и Python, и он делает снимок экрана, не открывая браузер. Но скриншот видео черный с ошибкой, которую я не хочу.

код в R библиотека (WebShot) WebShot ( "https://www.youtube.com/watch?v=Nym5stAJAt8","test.png")

код в Python из селена импорт вебдрайвер Водитель = webdriver.PhantomJS () driver.set_window_size (1120, 550) driver.get ( "https://www.youtube.com/watch?v=Nym5stAJAt8") driver.save_screenshot ( "screenshot.png")

на выходе я получаю желаемый вывод

1 Ответ

0 голосов
/ 18 мая 2019

Вы можете использовать безголовый режим Chrome. Перед вызовом драйвера chrome создайте объект option опции, а затем отправьте драйверу в качестве аргумента. Затем вы можете запустить этот код в бэкэнде даже в некоторой среде без какого-либо экрана, включающего Docker-контейнер. Но будьте осторожны, чтобы установить размер окна. Это повлияет на ваш скриншот.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options() #
chrome_options.add_argument('--headless')
chrome_options.add_argument("--window-size=1920x1080")
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver)
driver.get_screenshot_as_file("capture.png")
...