【发布时间】:2020-07-17 19:14:27
【问题描述】:
我正在尝试抓取具有相同类名但每个元素具有不同数量的子元素的多个元素。我正在寻找一种使用 xpath 选择特定元素的方法(这将使我的循环变得最简单)。
const gameTimeElement = await page.$$('//*[@id="section-content"]/div[2]/div[1]/div/div['+ i + ']');
const gameTimeString = await gameTimeElement[j].$eval('h3', (h3) => h3.innerHTML);
这目前不起作用。 选择元素后,我抓取内部的 h3 标签并对其进行评估以获取 innerHTML。 有没有办法利用 xpath 做到这一点?
<div id="section-content" style="display: block;">
</div>
<div class="matches">
<div class="day day-28-1" data-week="1" style="display: block;">
<h4>Sat, March 28, 2020</h4>
<div class="day-wrap">
<div class="match region-7-57d5ab4-9qs98v" data-week="1">
<h3 class="time">2:00PM
<span>(Central Daylight Time)</span>
<span class="fr">Best of 7</span>
</h3>
<div class="row ac ">
<div class="col-xs-3 ar">
<img class="team-logo" src="url"></div>
<div class="col-xs-2 al">
<h4 class="loss">(NA)<br>
<span class="team-name">Team1</span>
<br>
<span class="win spoiler-wrap">0</span>
</h4>
</div>
<div class="col-xs-2">
<img class="league-logo" src="url">
<h4> V.S.</h4>
</div>
<div class="col-xs-2 ar">
<h4 class="">(NA)<br>
<span class="team-name">Team2</span>
<br>
<span class="win spoiler-wrap">4</span>
</h4>
</div>
这是我在网站上使用的 HTML 示例。
【问题讨论】:
-
XPath 应该可以。请提供数据样本并告诉我们您正在寻找的具体元素。蒙着眼睛很难工作。
-
我继续更新问题以提供更多信息。
-
好的。帖子如下。希望我能完全理解您的要求。
标签: xpath web-scraping puppeteer