Een possibly()-variant van read_lines()
We werken nog steeds met de reeks URL's die je moet scrapen. We proberen verschillende methoden om URL's te identificeren die niet toegankelijk zijn. Waarom doen we dat? Omdat de eerste stap van webscraping is om te analyseren of je de URL kunt bereiken of niet. Daar is de code die we schrijven nuttig voor.
In de vorige oefening hebben we de functie read_lines() ingepakt in een safely()-functie. In deze oefening gebruiken we de functie possibly().
In webterminologie geeft een 404 aan dat een webpagina niet beschikbaar is. Dit getal gebruiken we als het otherwise-argument.
Omdat read_lines() bij het lezen van een webpagina een vector van lengte n teruggeeft, voegen we die regels samen met de functie paste().
De vector urls is al voor je klaargezet.
Deze oefening maakt deel uit van de cursus
Gevorderd functioneel programmeren met purrr
Oefeninstructies
Pak de functie
read_lines()in in een aanroep vanpossibly()die anders 404 teruggeeft.Map deze nieuw gemaakte functie over de URL-lijst en pipe deze direct naar
set_names()Zet elk element van deze lijst om naar één tekenreeks door de functie
paste()te gebruiken, met het argumentcollapseingesteld op" ".Houd alleen de elementen over die gelijk zijn aan 404.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create a possibly() version of read_lines()
possible_read <- ___(___, otherwise = ___)
# Map this function on urls, pipe it into set_names()
res <- map(urls, ___) %>% ___(urls)
# Paste each element of the list
res_pasted <- ___(res, ___, collapse = ___)
# Keep only the elements which are equal to 404
___(res_pasted, ___)