【发布时间】:2019-04-09 19:33:25
【问题描述】:
我在node 中编写了一个脚本,将titles 和urls 从网页的登录页面抓取到不同帖子的标题,然后从其内部页面获取每个用户的profile name .我唯一无法解决的是在for loop 中打印items 和output 这两件事。
如何在for loop 中传递items 以便脚本同时打印items 和output? p>
我试过这样:
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();
【问题讨论】:
标签: node.js web-scraping request cheerio