Wersja read_lines() z possibly()
Wciąż pracujemy z zestawem adresów URL, które masz za zadanie przeszukać. Wypróbujemy kilka metod identyfikowania adresów URL, do których nie można uzyskać dostępu. Po co to robimy? Ponieważ pierwszym krokiem web scrapingu jest sprawdzenie, czy dany adres URL jest w ogóle dostępny. Właśnie do tego będzie służył kod, który piszemy.
W poprzednim ćwiczeniu opakowano funkcję read_lines() w wywołanie safely(). W tym ćwiczeniu skorzystamy z funkcji possibly().
W terminologii webowej kod 404 oznacza, że strona jest niedostępna. Ta liczba zostanie użyta jako argument otherwise.
Ponieważ read_lines() zwraca wektor o długości n podczas odczytywania strony, połączymy te elementy za pomocą funkcji paste().
Wektor urls jest już dla ciebie przygotowany.
To ćwiczenie jest częścią kursu
Funkcyjne programowanie średnio zaawansowane z purrr
Instrukcje do ćwiczenia
Opakuj funkcję
read_lines()w wywołaniepossibly(), które w razie błędu zwróci wartość 404.Zmapuj nowo utworzoną funkcję na liście adresów URL i przekaż wynik bezpośrednio do
set_names().Zamień każdy element tej listy na łańcuch znaków o długości jeden, używając funkcji
paste()z argumentemcollapseustawionym na" ".Zachowaj tylko te elementy, które są równe 404.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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, ___)