gpt4 book ai didi

javascript - 数组或循环结果

转载 作者:行者123 更新时间:2023-11-30 11:16:48 26 4
gpt4 key购买 nike

我正在尝试最终制作一个 JSON 文件,该文件将包含来自 Google map 评论的所有结果,但我只能获得一个/最新评论以输出...

谁能帮我把它变成一个数组来获取所有评论?

const puppeteer = require('puppeteer');

let scrape = async () => {
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();

await page.goto('https://www.google.com/maps/place/Microsoft/@36.1275216,-115.1728651,17z/data=!3m2!4b1!5s0x80c8c416a26be787:0x4392ab27a0ae83e0!4m7!3m6!1s0x80c8c4141f4642c5:0x764c3f951cfc6355!8m2!3d36.1275216!4d-115.1706764!9m1!1b1');
await page.waitFor(1000);

const result = await page.evaluate(async () => {

let fullName = document.querySelector('.section-review-title').innerText;
let postedDate = document.querySelector('.section-review-publish-date').innerText;
let starRating = document.querySelector('.section-review-stars').getAttribute("aria-label");
let review = document.querySelector('.section-review-text').innerText;

return {
fullName,
postedDate,
starRating,
review
}

});

browser.close();
return result;
};

scrape().then((value) => {
console.log(value); // Success!
});

谢谢!

最佳答案

通常 document.querySelectorAll 会为您提供所有结果,而不仅仅是第一个。具体到您的用例,您要做的是首先处理所有评论(在处理它们之前)。

我检查了您提供的 url 并会以这种方式开始(Puppeteer 风格):

await page.$$('.section-review-content') 将返回一个 promise ,该 promise 解析为一个包含所有评论的数组作为 ElementHandles。

然后你遍历数组并对每个 ElementHandle 进行操作,如下所示:await ElementHandle.$eval('.section-review-title', el => el.innerText)

因此,例如,在您的 scrape 函数中您将拥有(我稍微缩短了您的场景):

...
await page.goto('https://www.google.com/maps/place/Microsoft/@36.1275216,-115.1728651,17z/data=!3m2!4b1!5s0x80c8c416a26be787:0x4392ab27a0ae83e0!4m7!3m6!1s0x80c8c4141f4642c5:0x764c3f951cfc6355!8m2!3d36.1275216!4d-115.1706764!9m1!1b1');
await page.waitFor(1000);

const reviews = await page.$$(".section-review-content");
for (const review of reviews) {
const reviewTitle = await review.$eval(
".section-review-title",
div => div.innerText
);
console.log('\n' + reviewTitle);
}
...

查看 Puppeteer API how page.$$有效。

关于javascript - 数组或循环结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51254495/

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