如何在 TripAdvisor 中使用 Puppeteer.js (node.js) 获取动态 Html 标签的 innerText?

How can I get the innerText of Dynamic Html tags using Puppeteer.js (node.js) in TripAdvisor?

如何使用循环或 Puppeteer 函数 https://www.tripadvisor.com/Restaurant_Review-g294308-d3937445-Reviews-Maki-Quito_Pichincha_Province.html 使用 innerText 属性 获取此页面中的所有 10 条评论?

我想出的唯一解决方案是获取整个评论容器的 outerHTML,然后尝试子字符串获取所有评论,但这不是最优的,我认为它更困难的方法。也许我在 Puppeteer 中找不到更简单的解决方案?

我这样做是出于教育目的。评论在 class="partial_entry" 中,我想获取动态 Html 标签的 innerText(我想要全部 10 个),就像您在此处看到的那样:

如果我在哪里打开包含 <div class="review-container" data-reviewid="606551292" data-collapsed="true" data-deferred="false"><!--trkN:3--> 的 div,我会得到另一个 id="review_582693262"。言归正传,如果我到达 class="partial_entry"<div>,这就是我的评论所在的位置。我已经尝试了一些东西,但我得到了空值,因为找不到它,因为每个评论的父 <div> 都有一个唯一的 ID,比如 id="review_xxxxxxxxx".

这有点困难,因为评论 ID 是 autogenerated 就像 id="review_xxxxxxxxx" 并且不能通过循环复制 CSS 路径进行迭代,因为我没有静态父项。

为什么不只是 select 那些具有 partial_entry class 的元素?这有效:

let comments = await page.evaluate(() =>
    [...document.querySelectorAll(".partial_entry")].map(item => item.textContent)
);