【问题标题】:How to extract all the current video files and its address in the web page with js?如何用js提取网页中当前所有的视频文件及其地址?
【发布时间】:2016-11-02 11:55:34
【问题描述】:
 var imgs=document.images.length;

它可以提取网页上的所有图像。
如何用js提取网页中所有后缀为flv如sample.flv的flv文件?不是我本地目录下的所有flv文件,而是网页。
firefox中的插件Video DownloadHelper可以获取当前mp4文件。
为什么我的js代码不能做同样的任务?

var Links = document.querySelectorAll('a[href$=".mp4"]');
console.log(Links);

firefox中的插件Video DownloadHelper等js如何提取当前视频文件?

【问题讨论】:

  • flv 文件是什么意思?
  • 您是指 Flash 视频吗?这些不是图像。
  • 我不确定这是否简单,flv 文件通常在某种插件或播放器中使用,而不是作为“文档的一部分”。发布有关正在使用的页面的更多信息可能会有所帮助,因为目前我认为这将是一个很难回答的问题。

标签: javascript dom web-scraping


【解决方案1】:

Yahoo Movies 使用 blob 流传输视频数据。任何地方都没有直接的mp4/flv 链接,您也无法直接获得此类链接。 <video> 标签的src 指的是一个blob 流链接:

<video class="yvp-html5-video" preload="" id="2413371376" src="blob:https://www.yahoo.com/1dfafd99-a1ff-4cc8-bcff-255e69db9977"></video>

当您点击从Video DownloadHelper 下载 MP4 时,插件实际上会读取 blob 流并将其以 MP4 文件的形式写入磁盘。它不下载 MP4 文件。如果你尝试Copy URL,你会在剪贴板中得到这样的东西:

https://roarack01.vpg.cdn.yimg.com/yahoomovies/61fb473f-04a2-381e-b2ae-9496dfba5e66_VYtMtix1DscECbXMT9tHT7yf2P9BZF-mRCMjBejFgALFHl7NSm1ZXPOMICAOr949v2xUgEASYLw-_1_0_vtt.m3u8?a=yahoomovies&ib=sapi&m=application%2fvnd.apple.mpegurl&mr=0&ns=c+i+ci+cii&vid=61fb473f-04a2-381e-b2ae-9496dfba5e66&x=1479599999&s=370695a7063b6aae06fb7f537c85773a

您可以录制 Blob 流,但这不是一件容易的事。

有关视频 blob 流的更多详细信息,请查看以下链接:

What is blob in the <video src=blob:url>?

Export HTML5 blob video to MP4

W3C Media Source Extensions

A URL for Blob and File reference

【讨论】:

    【解决方案2】:

    如果我理解正确,您想查找所有具有关联 .flv 的链接。

    如果你想要这个,你可以使用querySelectorAll并使用css选择器$=选择所有以.flv结尾的链接。

    var flvLinks = document.querySelectorAll('a[href$=".flv"]');
    

    【讨论】:

    • 这只会选择指向flv文件的锚链接,我怀疑它适用于任何类型的嵌入式视频。
    • 是的,这就是我认为他要求的。如果没有,他将需要以某种方式检索服务器文件并查找 flv 文件。
    【解决方案3】:

    要获取一个目录的所有flv文件,请尝试以下代码 -

    var files = fs.readdirSync("YOUR_DIRECTORY");
    var path = require('path');
    
    for(var i in files) {
       if(path.extname(files[i]) === ".flv") {
           //do your desired task here
       }
    }
    

    希望对你有帮助..:)

    【讨论】:

      【解决方案4】:

      您可以检查 Chrome 上的所有视频请求 -> 媒体子选项卡中的网络选项卡。

      【讨论】:

        猜你喜欢
        • 2020-01-16
        • 2011-06-22
        • 1970-01-01
        • 1970-01-01
        • 2020-05-30
        • 2013-03-08
        • 1970-01-01
        • 2010-12-21
        • 2010-10-25
        相关资源
        最近更新 更多