开始使用免费开始使用

使用谓词根据子节点选择节点

这份 HTML 与之前几乎相同。另外,第 3 个 div 有一个带有 third 类的 p 子元素。

<html>
  <body>
    <div id = 'first'>
      <h1 class = 'big'>Berlin Weather Station</h1>
      <p class = 'first'>Temperature: 20°C</p>
      <p class = 'second'>Humidity: 45%</p>
    </div>
    <div id = 'second'>...</div>
    <div id = 'third'>
      <p class = 'first'>Sunshine: 5hrs</p>
      <p class = 'second'>Precipitation: 0mm</p>
      <p class = 'third'>Snowfall: 0mm</p>
    </div>
  </body>
</html>

借助 XPATH,您可以完成 CSS 做不到的事:基于后代节点的属性来选择元素。为此可以使用谓词。这里,您的最终目标是仅选择那些包裹了带有 third 类的 p 元素的 div 元素。为达到这个目标,您需要只选择满足特定谓词的 div——即拥有相应后代(不必是直接子元素)。您将按步骤完成。

同样,上述 HTML 已作为 weather_html 提供。

本练习是课程的一部分

R 语言网页抓取

查看课程

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Select all divs
weather_html %>% 
  ___(xpath = ___)
编辑并运行代码