Node.js Can';t在for循环中传递项以同时打印两个项
我在Node.js Can';t在for循环中传递项以同时打印两个项,node.js,web-scraping,request,cheerio,Node.js,Web Scraping,Request,Cheerio,我在节点中编写了一个脚本,将标题和URL从网页的登录页刮到不同帖子的标题,然后从其内部页面获取每个用户的配置文件名。我唯一无法解决的问题是在for循环中打印项和输出 如何在for循环中传递项,以便脚本同时打印项和输出 我试过: var request = require('request'); var cheerio = require('cheerio'); const url = 'https://stackoverflow.com/questions/tagged/web-scrapin
节点
中编写了一个脚本,将标题
和URL
从网页的登录页刮到不同帖子的标题,然后从其内部页面获取每个用户的配置文件名
。我唯一无法解决的问题是在for循环
中打印项
和输出
如何在for循环中传递项
,以便脚本同时打印项
和输出
我试过:
var request = require('request');
var cheerio = require('cheerio');
const url = 'https://stackoverflow.com/questions/tagged/web-scraping';
const host = 'https://stackoverflow.com';
function getPosts() {
request(url, function(error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
let linkstorage = [];
$('.summary .question-hyperlink').each(function() {
var items = $(this).text();
var links = host + $(this).attr("href");
linkstorage.push(links);
});
for (const newlink of linkstorage) {
request(newlink, function(error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var output = $(".user-details a").eq(0).text();
console.log(output);
}
});
}
}
});
}
getPosts();
变量声明和赋值可以在JavaScript中分开。您可以定义指定的for循环范围之外的items变量
// define it outside the jquery function scope
let items;
$('.summary .question-hyperlink').each(function(){
items = $(this).text();
...
});
for (const newlink of linkstorage){
request(newlink,function(error,response,html){
if (!error && response.statusCode == 200){
var $ = cheerio.load(html);
var output = $(".user-details a").eq(0).text();
console.log(output);
console.log(items); // It is visible in this scope
}
});
}
}
在这种情况下,脚本将多次打印单个项(数组的最后一项)@jakemingolla.@MITHU true,我在教学时主要将其用作占位符:)我不知道指定了什么“同时打印项
和输出
”