如何检测一个HTML页面是否包含视频?

9
我想知道是否有可能检测一个HTML页面是否包含视频。
我知道一种可能的方法是查找HTML源代码中的“.swf”。但大多数页面都不包含文件名。
例如,对于以下URL及其可能的源代码,是否可能找出它是否包含视频: http://www.cnn.com/video/

一般来说,这是不可能的。 - SLaks
答案取决于您想使用哪种编程语言来检测它。 - BalusC
Pekka已经很好地总结了。我检查了CNN网站的源代码,它实际上使用JS来加载视频。并不是很多HTML解析器能够执行/解析JS。虽然有一些可以,但你最终仍需要编写特定于目标的代码。除此之外,JSP是一种视图技术。通常你不会想在JSP文件中编写Java代码。 - BalusC
4个回答

10

有许多方法可以将视频嵌入HTML页面,例如通过Flash视频或使用<object><embed>标签的特定平台播放器实例(但并不是所有这些标签都是视频!对于.swf来说也是如此 - 它只是Flash文件的文件扩展名,无论其是否为视频),还有新的HTML 5 <video>标签...找出它们并不是不可能,但需要大量工作来捕获所有可能的播放器类型、格式和嵌入代码,并且会导致很多误报和漏报。

此外,还有一些JavaScript库会在包含页面加载后初始化播放器 - 这些几乎不可能检测到。

因此,要在网页中可靠地嵌入视频仍然是一个非常复杂的问题,而且随后从中找到视频更加困难。根据您想要实现的目标,我建议您考虑放弃这个想法。


2
对于您的案例(CNN网站),您可以解析视频信息的Open Graph微标记。
例如,og:video:type, og:image等元标记将对您有所帮助。
视频托管服务通常支持微标记,例如open graph或scheme.org。
因此,您可以解析这些标记。

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

-1

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


2
它非常不可靠。Flash电影可以在电影本身中包含对flv文件的引用。 - Pekka
网页通过iframe播放mp4或flv等视频时,其源代码中并不包含视频的src路径! - Mohsen Abasi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接