Knoten anhand der Anzahl ihrer Kinder extrahieren
Wie im Video gezeigt, kann die XPATH-Funktion count() innerhalb eines Prädikats verwendet werden, um eine Auswahl auf die Knoten einzugrenzen, die eine bestimmte Anzahl an Kindknoten haben. Das ist besonders hilfreich, wenn dein Scraper darauf angewiesen ist, dass einige Knoten eine Mindestanzahl an Kindern besitzen.
Hier ist ein Auszug aus einer Seite (ohne irgendwelche Klassen oder IDs …), die du eventuell scrapest:
...
<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>
...
Dich interessieren nur divs, die genau eine h2-Überschrift und mindestens zwei Absätze haben, weil deine Anwendung mit unvollständigen Wettervorhersagen nicht gut umgehen kann.
Das obige HTML steht dir über forecast_html zur Verfügung.
Diese Übung ist Teil des Kurses
Web Scraping in R
Anleitung zur Übung
- Wähle die gewünschten
divs mit dem passenden XPATH-Selektor aus und nutze dabei die Funktioncount().
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Select only divs with one header and at least two paragraphs
forecast_html %>%
html_elements(xpath = '___')