Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Omslut funktionen read_lines() i ett possibly()-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 argumentet collapse satt 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, ___)
Redigera och kör kod