開始使用免費開始

使用述詞(predicate)依子代條件選取節點

這段 HTML 和前一題幾乎相同。另有一點不同:第三個 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 做不到的事:依照後代元素的屬性來選取元素。為此可以使用述詞(predicates)。在這裡,你的最終目標是只選取包住帶有 third 類別之 p 元素的 div。你需要只選取符合特定述詞的 div——也就是擁有相應的後代元素(不必是直接子元素)。你會一步一步完成這個目標。

同樣地,上面的 HTML 已提供為 weather_html

本練習屬於課程

R 的網頁爬蟲

檢視課程

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Select all divs
weather_html %>% 
  ___(xpath = ___)
編輯並執行程式碼