如何查找具有特定文件扩展名的网页中的所有链接?

时间:2014-01-14 22:28:50

标签: javascript node.js

是否可以在具有特定文件扩展名的网站中找到href。例如,它会打印http://www.test.com/something.mp3 http://www.test.com/somelinktoamuscifile.mp3 http://www.test.com/music.mp3

它会显示所有链接,例如文件扩展名为.mp3

你能做到吗? var extension = ".mp3"

var checker = url + extension

if(url == checker){console.log(url);}

3 个答案:

答案 0 :(得分:2)

所以你想从任何给定的URL中提取包含某个字符串的所有链接? 也许这个脚本会帮助你:

var request = require('request');
var cheerio = require('cheerio');

var url = "http://www.stackoverflow.com";
var toFind = "delete"  //use file extension or whatever you want to find

request(url, function(err, resp, body) {
    if (err) throw err;
    var $ = cheerio.load(body);

    $('a').each(function (i, element) {
        var a = $(this);
        //console.log(a.attr('href'));

        var href = a.attr('href');
        if (href && href.indexOf(toFind) != -1) {
            console.log(href);
        }
    })
})

Output:
$ node scraping.js 
http://ux.stackexchange.com/questions/49991/should-yes-delete-it-be-red-or-green

只需更改urltoFind的内容即可。网络抓取herehere有一个很好的教程。当然,这可以在许多不同的编程语言中完成。我只是使用了javascript,因为你用这种方式标记了它。

答案 1 :(得分:1)

这是一个原生的javascript解决方案,适用于没有jQuery的当前浏览器(IE8 +,Chrome,Firefox)。

function getLinksWithExtension(extension) {
    var links = document.querySelectorAll('a[href$="' + extension + '"]'),
        i;

    for (i=0; i<links.length; i++){
        console.log(links[i]);
    }
}

答案 2 :(得分:0)

我认为它是这样的:

var mp3_extension = '.mp3';
var url_string = url.split('.');
var url_extension = url_string[url_string.length-1];

if(url_extension === mp3_extension){

    //go go go!!!     

}