En possibly()-version av read_lines()
Vi arbetar fortfarande med samma serie URL:er som du fick för att skrapa. Vi testar flera metoder för att identifiera URL:er som inte går att nå. Varför gör vi det? Därför att det första steget i webbskrapning är att kontrollera om du kan komma åt en URL eller inte – och det är precis vad koden vi skriver hjälper oss med.
I föregående övning omslöt vi funktionen read_lines() med safely(). I den här övningen använder vi possibly() i stället.
Inom webbterminologi anger 404 att en webbsida inte är tillgänglig. Det här talet används som argument för otherwise.
Eftersom read_lines() returnerar en vektor av längd n när den läser en webbsida, slår vi ihop resultatet med funktionen paste().
Vektorn urls är redan tillgänglig för dig.
Den här övningen är en del av kursen
Funktionell programmering på mellannivå med purrr
Övningsinstruktioner
Omslut funktionen
read_lines()i ettpossibly()-anrop som annars returnerar 404.Mappa den nyss skapade funktionen på URL-listan och skicka resultatet direkt vidare till
set_names().Omvandla varje element i listan till ett tecken av längd ett med hjälp av funktionen
paste(), med argumentetcollapsesatt till" ".Behåll bara de element som är lika med 404.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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, ___)