【问题标题】:How to detect whether an HTML page contains a video?如何检测 HTML 页面是否包含视频?
【发布时间】:2010-04-25 20:05:51
【问题描述】:

我想知道是否可以检测 HTML 页面是否包含视频。

我知道一种可能的方法是在 HTML 源代码中查找“.swf”。但大部分页面不包含文件名。

例如,给定以下 URL 及其源代码,是否有可能找出它是否包含视频: http://www.cnn.com/video/

【问题讨论】:

  • 一般来说,这是不可能的。
  • 答案取决于您想用来检测它的编程语言。
  • Pekka 已经总结得很好。我查了CNN的网站源码,其实是用JS来加载视频的。也没有多少 HTML 解析器会执行/解析 JS。有一些可以,但您毕竟需要编写特定于目标的代码。没有通用的方法。除此之外,JSP 是一种视图技术。您通常不想在 JSP 文件中编写 Java 代码。

标签: html video


【解决方案1】:

有很多方法可以将视频嵌入 HTML 页面 - 作为 Flash 视频或通过 <object><embed> 标签的平台特定播放器的实例(但并非每个标签都是视频!同样适用对于.swf - 它只是 Flash 文件的文件扩展名,无论是否是视频),新的 HTML 5 <video> 标签......它们并非不可能找到,但要捕捉所有可能的播放器类型需要做很多工作,格式和嵌入代码,会导致很多误报/误报。

然后,有一些 JavaScript 库会在包含页面加载后初始化播放器 - 这些几乎无法检测到。

将视频可靠地放入网页仍然是一个非常复杂的问题,而随后取出视频就更加复杂了。根据您要达到的目标,我会考虑放弃它。

【讨论】:

  • 嗨 Pekka,感谢您的详细回答。
【解决方案2】:

对于您的情况(CNN 网站),您可以解析 Open Graph 微标记以获取视频信息。

og:video:type, og:image 等元标记会为您提供帮助。

视频托管服务通常支持微标记,例如打开图表或 scheme.org。

所以你可以解析这些标记。

【讨论】:

    【解决方案3】:

    检查 DOM 中是否存在 <object> 标签并检查其内容类型和参数。你会自己找到模式。

    【讨论】:

      【解决方案4】:

      您也可以在源代码中搜索 .flv 或 .mp4。

      【讨论】:

      • 极不可靠。 Flash 电影可以在电影本身中包含对 flv 文件的引用。
      • 网页正在播放 mp4 或 flv 或 .. 通过 iframe 播放的视频在其源中不包含视频的 src!
      猜你喜欢
      • 1970-01-01
      • 2015-04-03
      • 2011-07-15
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多