这可能是一个愚蠢的错误,但它花了我太长时间才找到答案
当我运行这个简单的程序(node index.js)时,我收到一个错误:
SyntaxError:missing)参数列表(第55行)
之后你可以看到sublimelinter找不到任何东西
我试图再次删除并安装所有软件包
我已经三次检查了所有内容
var request = require('request');
var cheerio = require('cheerio');
var fs = require('fs');
var readLine = require('readline');
var URL_SEED= "https://g1.globo.com/";
var MAX_PAGES_TO_VISIT = 100;
var pagesVisited = []; //array, {objeto}
var numPagesVisited = 0;
var pagesToVisit = [];
var allAbsoluteLinks = [];
var url = new URL(URL_SEED); //pesq
var urlBase = url.protocol + "//" + url.hostname; //pesq
pagesToVisit.push(URL_SEED);
crawl();
//pegar href vs a
function crawl() {
if(numPagesVisited >= MAX_PAGES_TO_VISIT) {
console.log("Limites de páginas que posso visitar atingido (100)");
return;
}
var nextPage = pagesToVisit.pop(); //peq
if (nextPage in pagesVisited) { //peq
// pagina ja visitada
crawl();
} else {
// pagina nao visitada
visitaPagina(nextPage, crawl);
}
}
function visitaPagina(url, callback) {
// Add page to our set
pagesVisiteu[url] = true;
numPagesVisited++;
console.log("Visitando a página " + url);
// Faz requisicao
request(url, function(error, response, body) {
console.log("Status code: " + response.statusCode);
if(response.statusCode !== 200) {
callback();
return;
} else {
// Parse do body
var $ = cheerio.load(body);
coletaLinks($);
}
}
}
function coletaLinks($) {
//var linksRelativos = $("a\[href^='/'\]"); //NAO TA PEGANDO DO JEITO QUE
var linksRelativos = $("a\[href^='/'\]");
console.log("Achei " + linksRelativos.length + " links relativos nessa página");
linksRelativos.each(function() {
pagesToVisit.push(baseUrl + $(this).attr('href'));
});
console.log("\n\nPAGES TO VISIT = " + pagesToVisit + "\n\n");
var key = [];
for (key in linksRelativos) {
if(linksRelativos.hasOwnProperty(key)) { //realmente preciso ver essa property?
console.log(key, linksRelativos\[key\].attribs.href);
}
}
fs.writeFile('relativos.txt', linksRelativos, function(err) {
if(err) {
return console.log(err);
//throw err;
}
});
}
答案 0 :(得分:1)
我不确定为什么你的linter没有抱怨,但你 错过request
visitaPagina
内function visitaPagina(url, callback) {
// Add page to our set
pagesVisited[url] = true;
numPagesVisited++;
console.log("Visitando a página " + url);
// Faz requisicao
request(url, function(error, response, body) {
console.log("Status code: " + response.statusCode);
if(response.statusCode !== 200) {
callback();
return;
} else {
// Parse do body
var $ = cheerio.load(body);
coletaLinks($);
}
} // should be })
}
电话中的结束括号。从底部开始的第二行:
node-4.1.1-32bit
node-4.1.1-64bit
* node-8.9.1-32bit INSTALLED
node-8.9.1-64bit
此外,在SO上复制代码时出现问题,您可能希望检查以后提交的内容是什么。在这种情况下,屏幕截图有所帮助,但您也应该知道代码图像通常不赞成使用SO。
祝你好运!