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

是否有可能find一个具有一定的文件扩展名的网站的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);}

所以你想提取包含任何给定的url的特定string的所有链接? 也许这个脚本会帮助你:

 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 

只需更改url的内容并toFind 。 在这里和这里有一个很好的网上抓取教程。 当然,这可以用很多不同的编程语言来完成。 我只是使用JavaScript,因为你这样标记。

这里是一个原生的JavaScript解决scheme,可以在没有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]); } } 

我认为这是这样的:

 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!!! }