Nog een extractor
In de vorige oefening hebben we een functie gebouwd die de tekstinhoud uit H2-koppen kon halen.
We gaan nu iets anders doen: we willen alle links op een specifieke pagina extraheren. Daarvoor moeten we twee httr-functies aanroepen: html_nodes() met het argument css ingesteld op "a" (a is de HTML-tag voor links) en html_attr(), dat een gegeven attribuut uit een node haalt — in ons geval is dat attribuut "href", het linkadres.
purrr en rvest zijn voor je geladen. De vector urls staat nog steeds in je werkruimte.
Deze oefening maakt deel uit van de cursus
Gevorderd functioneel programmeren met purrr
Oefeninstructies
Vul
html_nodes()vooraf in met het argumentcssingesteld op"a".Maak de functie
href(), een vooringevulde versie vanhtml_attr().Compose een nieuwe combinatie van
href(),get_a()enread_html().Pas deze nieuwe functie toe op de vector
urls.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create a partial version of html_nodes(), with the css param set to "a"
get_a <- ___(html_nodes, ___)
# Create href(), a partial version of html_attr()
href <- ___(___, name = "href")
# Combine href(), get_a(), and read_html()
get_links <- ___(___, ___, ___)
# Map get_links() to the urls list
res <- ___(urls, ___) %>%
set_names(urls)
# See the result
res