Javascript Node.js它会将相同的结果打印两次,而不是一次
这是我的node.js应用程序代码: 这是我的html.js文件代码Javascript Node.js它会将相同的结果打印两次,而不是一次,javascript,node.js,cheerio,Javascript,Node.js,Cheerio,这是我的node.js应用程序代码: 这是我的html.js文件代码 /** * HTML Helpers */ 'use strict'; var cheerio = require('cheerio'); module.exports.gotHTML = function gotHTML(error, response, htmlBody) { if (!error && response.statusCode == 200) {
/**
* HTML Helpers
*/
'use strict';
var cheerio = require('cheerio');
module.exports.gotHTML = function gotHTML(error, response, htmlBody) {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(htmlBody);
var reviews = [];
var businesses = [];
var combinedData;
var reviewsSelectors = $('.js-hot-new-businesses-section .rating-qualifier');
var businessSelectors = $('.js-hot-new-businesses-section .biz-name');
reviewsSelectors.each(function (index, value) {
reviews.push($(this).text().trim());
});
businessSelectors.each(function (index, value) {
businesses.push($(this).text().trim())
});
combinedData = businesses.map(function (value, index) {
return {businessName: value, reviewsTotal: reviews[index]};
});
combinedData.forEach(function(value, index) {
console.log(value["businessName"] + " - " + value["reviewsTotal"]);
})
}
}
这是app.js文件代码
'use strict';
const request = require('request');
const cheerio = require('cheerio');
const express = require('express');
const app = express();
const htmlHelpers = require('./html');
const url = 'https://www.yelp.com/sf';
request(url, htmlHelpers.gotHTML);
// Expose app
exports = module.exports = app;
当我执行这段代码时,为了打印第一个结果的名称和评论数量,它会打印两次。这是输出
Boba Guys - 24 reviews
Boba Guys - 24 reviews
Coletta Gelato - 23 reviews
Coletta Gelato - 23 reviews
An Chi - 29 reviews
An Chi - 29 reviews
顺便说一下,相同的代码在浏览器控制台中正确执行并打印所需的结果
Boba Guys - 24 reviews
Coletta Gelato - 23 reviews
An Chi - 29 reviews
这是因为当浏览器执行脚本时,ChereIO不执行页面中的脚本。Cheerio只关心HTML 看看你得到的回应
热门和新业务
25篇评论
$$
冰淇淋,
冰淇淋及;冷冻酸奶
CA旧金山
25篇评论
$$
冰淇淋,
冰淇淋及;冷冻酸奶
6周前开业
10篇评论
$$
烹饪课
CA旧金山
10篇评论
$$
烹饪课
4周前开业
11次审查
$
面包店,
咖啡及;茶叶
CA旧金山
11次审查
$
面包店,
咖啡及;茶叶
三周前开业
亲爱的Antonio,我尊重您对我的问题的关注,但根据您的版本,它只打印了一次,但需要另一个内容,而不是我想要的内容。@HaykMkhitaryan我已经更新了答案。现在您有了所有父元素的类名,并且可以构建所需的选择器。