Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Opakuj funkcję read_lines() w wywołanie possibly(), 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 argumentem collapse ustawionym 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, ___)
Edytuj i uruchom kod