Trích xuất các nút dựa trên số lượng phần tử con của chúng
Như đã minh họa trong video, hàm XPATH count() có thể được dùng trong predicate để thu hẹp lựa chọn xuống các nút có số lượng phần tử con nhất định. Điều này đặc biệt hữu ích nếu bộ thu thập (scraper) của bạn phụ thuộc vào việc một số nút phải có tối thiểu số phần tử con.
Dưới đây là một đoạn trích từ một trang (không có bất kỳ class hay ID nào…) mà bạn có thể đang thu thập dữ liệu:
...
<div>
<h1>Tomorrow</h1>
</div>
<div>
<h2>Berlin</h2>
<p>Temperature: 20°C</p>
<p>Humidity: 50%</p>
</div>
<div>
<h2>London</h2>
<p>Temperature: 15°C</p>
</div>
<div>
<h2>Zurich</h2>
<p>Temperature: 22°C</p>
<p>Humidity: 60%</p>
</div>
...
Bạn chỉ quan tâm đến các div có đúng một tiêu đề h2 và có ít nhất hai đoạn văn p, vì ứng dụng của bạn không thể xử lý tốt các dự báo thời tiết còn thiếu.
HTML ở trên có sẵn thông qua forecast_html.
Bài tập này là một phần của khóa học
Web Scraping bằng R
Hướng dẫn bài tập
- Chọn các
divmong muốn bằng bộ chọn XPATH phù hợp, tận dụng hàmcount().
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Select only divs with one header and at least two paragraphs
forecast_html %>%
html_elements(xpath = '___')