使用带有Javascript的数组检测媒体文件并返回所有网址

时间:2016-04-18 18:58:46

标签: javascript jquery

我试图找到一种方法,使用Javascript在任何网站上提取媒体文件的链接。我正在使用Unity3D,但它与使用uWebkit这是一个Web浏览器插件有关,这个网页浏览器插件允许我将Javascript注入网站,这样(希望)可以解决。

目的是返回我希望脚本找到的所有媒体链接的URL列表(* .mp3,* .ogg,* .mp4,* .pdf等)然后我可以单击打开在一个单独的窗口中,在自定义视频播放器/音乐播放器/ pdf阅读器等中只有该文件。我发现并非所有网站都将这些文件保留在公开状态,我会为那些人进行解决。

我在搜索引擎和GitHub上搜索过有关它的脚本或文档但没有成功。

PS:jQuery也很好。

2 个答案:

答案 0 :(得分:2)

基于Caleb的答案,我只是使用数据结构来优化它的性能,以存储您想要检查的文件类型。

var extensions = {};
extensions["mp3"]=true;
extensions["mp4"]=true;
extensions["pdf"]=true;
/* etc */

var extPattern = /\.([0-9a-z]+)(?:[\?#]|$)/i;

var links = [];
$('a').each(function(){
    var href = $(this).attr('href');
    if (typeof href !== 'undefined') {
      var ext = href.match(extPattern) 
      if(ext!= null && ext.length >1) {
        if(extensions[ext] != undefined) {
          links.push(href);
        }
      }
    }
});

答案 1 :(得分:1)

快速而又脏的jQuery版本可以点击页面上的所有标签,你可以从这个

分支
var links = [];
$('a').each(function(){
    var href = $(this).attr('href');
    if (typeof href !== 'undefined') {
        if (href.indexOf('mp3') > -1 || href.indexOf('ogg') > -1 || href.indexOf('mp4') > -1 || href.indexOf('pdf') > -1) {
            links.push(href);
        }
    }
});
console.log(links);