【发布时间】:2019-05-10 22:36:13
【问题描述】:
如何使用 innerText 属性通过循环或 Puppeteer 函数 https://www.tripadvisor.com/Restaurant_Review-g294308-d3937445-Reviews-Maki-Quito_Pichincha_Province.html 获取位于此页面中的所有 10 个 cmets?
我想出的唯一解决方案是获取整个 cmets 容器的 outerHTML,然后尝试对所有 cmets 进行子串化,但这不是最优的,我认为这是一种更困难的方法。也许我找不到 Puppeteer 中更简单的解决方案?
我这样做是出于教育目的。 cmets 在 class="partial_entry" 中,我想获取 Dynamic 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>,这将是我的评论所在的位置。我尝试了一些东西,但我得到了 null,因为找不到它,因为每个评论的父 <div> 都有一个唯一的 ID,例如 id="review_xxxxxxxxx"。
这有点困难,因为评论 ID 是 autogenerated,就像 id="review_xxxxxxxxx" 一样,并且由于我没有静态父级,因此无法使用复制 CSS 路径的循环进行迭代。
【问题讨论】:
-
通配符 css 选择器是否有效?即
[id*="review_"] -
今晚我会试试这个,我想它可能会奏效。
标签: html node.js chromium puppeteer