Обнаружить и разобрать встроенное видео в формате HTML? - PullRequest
4 голосов
/ 30 июня 2010

Я работаю над проектом, который требует от меня обнаружения и извлечения кода встраивания видео на веб-странице.

Я знаю, что тег <object> используется для встраивания видео, однако в спецификации говоритсячто он также может быть использован для других вещей, таких как изображения.

Так как я могу определенно узнать, что тег <object> содержит видео внутри?или есть другой способ узнать это?

1 Ответ

1 голос
/ 27 июля 2012

Исторически, тег <object> предназначался для использования в качестве способа встраивания мультимедиа, такого как видео и аудио, в документ HTML.Но по мере развития веб-видео оказалось, что вы не можете обеспечить разумный пользовательский опыт без интеграции элементов управления видео в свое веб-приложение, и стандартом де-факто для встраивания видео в HTML было внедрение флеш-плеера (с использованием <embed>или <object>) и для доступа к видео из этой флэш-презентации.(В HTML5 у вас есть объект <video> для этой цели, но я полагаю, что у вас нет такого контроля над файлами HTML, которые нужно обработать).

Обычно, когда вы видите <object> элемент, используемый для воспроизведения видео, на который ссылается объект, на самом деле - SWF - флэш-презентация - который запускает собственный код, который ссылается на видеофайл.Но флэш-презентация может содержать или не содержать видео, а также многое другое.Поэтому, если вы хотите обнаружить видео за <object> с, вы можете выбрать

  1. Список всех SWF-файлов / URL-адресов, которые на самом деле являются видеопроигрывателями.Этот метод самый простой, но имейте в виду, что у вас будет много ложных негативов .
  2. Программно оцените HTML, который вы анализируете в изолированном браузере, и определите видео на снимке экрана.Это, вероятно, огромные усилия, но они отлично решат вашу проблему.
  3. Загрузите и декомпилируйте SWF-файлы, на которые ссылаются теги object, и реализуйте эвристику, чтобы определить, содержат ли они встроенное видео.Я говорю эвристический , потому что SWF - это в основном программа, и если вы можете найти детерминистический метод, чтобы узнать, воспроизводит ли программа видео, вы также можете попытаться выяснить, является ли программа остановки .
...