gpt4 book ai didi

javascript - 在 Node/Express 中使用 Request.js 和 Cheerio.js 返回空数组

转载 作者:搜寻专家 更新时间:2023-11-01 00:39:08 28 4
gpt4 key购买 nike

我正在 Express 中使用 Request.js 和 Cheerio.js 构建一个简单的抓取工具。现在我只是在寻找网站的标题。我不是一个一个地抓取一个网站,而是将列表放在一个数组中。我解析它们,然后使用 Cheerio.js 找到网站的标题。当我控制台记录标题时,它们很好,但我想最终在 html 页面上显示它们。请注意,我是编程新手,所以如果您能提供详细的反馈,那将非常有帮助(下面是我一直在处理的代码)。提前致谢!

function parseSites(urls) {
var parsedSites = [];
urls.forEach(function(site) {
request(site, function(err, res, body) {
if(err) {
console.log(err);
} else {
var $ = cheerio.load(body);
parsedSites.push($('title').text());
}
}
});
});
return parsedSites;
}

最佳答案

请引用下面的代码实现工作

var request = require('request-promise')
var cheerio = require("cheerio")

function parseSites(urls, callback) {
var parsedSites = [];
var promiseList = urls.map(getPage)

Promise.all(promiseList).then(function (data) {
callback(data.map(parse))
})

return parsedSites;
}

function getPage(url) {

return request.get(url)
}

function parse(body) {
console.log("parsing body")
var $ = cheerio.load(body);
return $('title').text()
}

parseSites(['https://www.google.com','https://www.facebook.com'],function(data) {
console.log(data)
})

关于javascript - 在 Node/Express 中使用 Request.js 和 Cheerio.js 返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41233620/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com