2016-07-16 3 views
1

Как я могу сделать scrennshot флеш-сайта в Python 3.5.1. Я пробую что-то вроде этого, но я не вижу видеоизображения.Снимок экрана с флеш-элементом в Python

from selenium import webdriver 

def webshot(url, filename): 
    browser = webdriver.PhantomJS() 
    browser.get(url) 
    browser.save_screenshot(filename) 
    browser.quit() 

webshot('https://www.youtube.com/watch?v=YQHsXMglC9A', 'screentest.png') 
+0

Вы пробовали другой WebDriver браузер? Например. хром? –

+0

Это не работает. Работает только PhantomJS. : / – Joozty

ответ

1

Короткая версия: С помощью системы Youtube, если вы не нажмете эту кнопку «играть» (начать воспроизведение) есть видео не служил. Загрузка страницы через браузер также является формой запуска воспроизведения. Однако использование webshot не отвечает требованиям сервера Youtube, поэтому он не будет работать.

длинная версия:

Как я могу сделать скриншот веб-сайта Flash-... Я попытался это, но я не могу видеть видеоизображение.
webshot('https://www.youtube.com/watch?v=YQHsXMglC9A', 'screentest.png')

Вы не можете скриншот содержание видеоплеер YouTube, как это. То, как работает Youtube, заключается в том, что, когда видео-страница готова, к другому файлу PHP можно получить доступ к видеосвязи (например: правильный файл для выбранных параметров качества и т. Д.). В основном вы должны выглядеть как браузер , делающий HTTP-запрос на свои серверы. Их сервер предоставляет временный токен для доступа к видеосвязи до истечения срока действия токена и т. Д. Есть и другие проблемы, такие как CORS. Эти вещи не выполняются вашим инструментом.

Если только Youtube использовал обычный <video tag> с простой ссылкой MP4, тогда ваш код сработал бы.

Лучшее, что вы можете получить это, как показано ниже (см как нет контроля?) С помощью:

webshot('https://www.youtube.com/embed/YQHsXMglC9A', 'screentest.png') 

Смежные вопросы