使用 HTTP 流量嗅探器/代理来查看页面加载了哪些文件。许多浏览器都将它内置到他们的开发工具中(例如 Firebug 中的 net 选项卡),但我更喜欢使用 Charles,它具有许多其他对 Web 开发人员有用的功能。
使用Charles可以看到点击播放时加载的文件是http://cs12326.vk.com/u06492/video/ab94044f46.flv,是一个FLV文件。
编辑:如果您想以编程方式执行此操作,您可能不走运,因为只有视频播放器(在 Flash 中实现)知道从哪个 URL 检索视频文件。你可以为这个特定的网站进行逆向工程(见下文),但它显然只适用于 vk.com 上的视频,甚至可能不适用于 vk.com 上的所有视频。
查看 HTML 我可以看到定义了四个看似重要的 javascript 变量:
var video_host = 'http://cs12326.vk.com/';
var video_uid = '06492';
var video_vtag = 'ab94044f46';
var video_no_flv = 0;
这些值可以在视频 URL 中找到,因此可以安全地假设,通过解析这些变量定义的 HTML 文本,并使用这些值编译 URL,您可以找到该文件。
我假设在同一段代码中定义的 video_no_flv 变量指示视频是否为 FLV 文件。在此页面中,它设置为0,所以我假设这意味着它是一个 FLV 文件。这意味着通过在 HTML 文本字符串中搜索子字符串 video_no_flv 并解析下一个后续 = 之后的整数将告诉您视频文件是否为 FLV 文件。
如果不是,则可以安全地假定它是 MP4/F4V(对于同一类型的 MPEG-4 H.264 文件,它们都是不同的后缀)并且您应该能够在您的苹果手机。如果是这种情况,您应该能够从上面提到的部分编译 URL 并加载它。
//Pseudo-code
url = video_host + video_uid + "/video/" + video_vtag + ".m4v"
要评估这是否真的有效,您需要调查该网站上的大量视频。
另外,请注意,若要实施您通过此类逆向工程获得的知识,并在其发布环境之外显示视频,可能会违反该网站的服务条款,并且可能是以下行为重罪。