【发布时间】:2021-08-11 12:58:01
【问题描述】:
如何向articles 数组中的每个对象添加一个新的shortText 字段?
articles.forEach((article) => {
request(article.link, (err, response, html) => {
if (!err && response.statusCode == 200) {
const $ = cheerio.load(html);
const textData = $('.ssrcss-hmf8ql-BoldText');
textData.each((index, element) => {
article.shortText = $(element).text();
});
}
});
});
示例文章数组
[
{
headline: 'Scale of Russian mercenary mission in Libya exposed',
link: 'https://bbc.com/news/world-africa-58009514'
},
{
headline: 'Afghan president rallies Taliban-besieged city',
link: 'https://bbc.com/news/world-asia-58170847'
}
]
我想循环遍历上面的数组并将shortText字段添加到每个对象
【问题讨论】:
-
现在的行为是什么?你能分享一个示例输入数据和输出数据吗?
-
您当前的代码永久重新分配
article.shortText,因此最后将其分配给textData的最小值。此外,您可能不需要 jQuery。你到底想做什么? -
首先,您在
forEach中调用request是一件坏事,因为forEach不会等待异步函数得到解决,您需要使用for而是循环。
标签: javascript web-scraping cheerio