Javascript Node.js http:Parse";索引「;

Javascript Node.js http:Parse";索引「;,javascript,node.js,http,Javascript,Node.js,Http,我需要编写一个Node.js函数,在官方网站上查找所有可用的Node.js版本。为此,我希望接收此链接的内容:,但以数组的形式。有没有一种方法可以让我通过某个模块自动接收和解析可用的URL,或者我需要通过http请求站点,然后手动解析内容,如果有,怎么做?正如所建议的那样,您可以使用一个不同的URL为您提供JSON var request = require('request'); request( 'https://raw.githubusercontent.com/nodejs/nodejs

我需要编写一个Node.js函数,在官方网站上查找所有可用的Node.js版本。为此,我希望接收此链接的内容:,但以数组的形式。有没有一种方法可以让我通过某个模块自动接收和解析可用的URL,或者我需要通过
http
请求站点,然后手动解析内容,如果有,怎么做?

正如所建议的那样,您可以使用一个不同的URL为您提供JSON

var request = require('request');
request( 'https://raw.githubusercontent.com/nodejs/nodejs.org/master/source/versions.json', 
       function(err, resp, json) {
          if (err) return console.error(err);
          var data = JSON.parse(json);
          // Do what you need here
       };
);
如果你真的想刮去你提到的HTML页面,你可以使用下面的,复制粘贴(和改编)自


使用任何HTML解析库?您可以使用从存储库轻松提取标记。这是@rahilwazir,它比刮擦要好得多。我现在想删除我的答案,但我将把它留作实际需要刮削的示例。他们有一个json文件,版本为@rauluco,这非常棒。一些关于否决票的反馈会很好(我没有投反对票,但我对这个问题的解释是,OP特别希望从网站上获得信息,而不仅仅是世界上所有版本的列表。)@DaveNewton我的回答不也说明了如何从提到的网页上删除它吗?这就是我认为否决票是支持的,因为我回答了这个问题,但有更好的方法(通过API),所以我也添加了。是的,确实如此。我试图解释为什么(a)有人可能投了否决票,以及(b)为什么
versions.json
方法实际上可能并不更好。请记住,我无法真正了解下层选民的想法,因此就这一点与我进行辩论可能是次优的。@Dave我知道,只是你是唯一提供反馈的人:)
var $ = require('cheerio');

function gotHTML(err, resp, html) {
  if (err) return console.error(err);
  var parsedHTML = $.load(html);
  // get all a tags and loop over them
  var links = parsedHTML('a').map(function(i, link) {
    return $(link).attr('href');
  });
}

request('https://nodejs.org/download/release/', gotHTML);