Välj direkt från ett förälderelement med XPATH:s text()
I den här övningen arbetar du med samma tabell som tidigare. Den här gången ska du extrahera funktionsinformationen inom parentes till en egen kolumn, vilket innebär att du behöver extrahera en dataram med inte två, utan tre kolumner: skådespelare, roller och funktioner.
För att klara det behöver du använda den specifika XPATH-funktion som introducerades i videon, i stället för html_table(). Den fungerar ofta inte i praktiken när HTML-elementet table inte är välstrukturerat – vilket är fallet här.
Här är ett utdrag ur tabellens HTML som referens:
<table>
<tr>
<th>Actor</th>
<th>Role</th>
</tr>
<tr>
<td class = 'actor'>Jayden Carpenter</td>
<td class = 'role'><em>Mickey Mouse</em> (Voice)</td>
</tr>
...
</table>
I den här övningen innehåller variabeln roles_html HTML-dokumentet med dess table-element.
Den här övningen är en del av kursen
Webbskrapning i R
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Extract the actors in the cells having class "actor"
actors <- roles_html %>%
html_elements(xpath = '//table//td[@class = "actor"]') %>%
html_text()
actors
# Extract the roles in the cells having class "role"
roles <- roles_html %>%
html_elements(xpath = '//table//td[@class = "___"]/___') %>%
___()
roles