Zacznij terazZacznij za darmo

Kolejny ekstraktor

W poprzednim ćwiczeniu zbudowaliśmy funkcję, która potrafiła wyodrębniać treść tekstową z nagłówków H2.

Tutaj spróbujemy czegoś innego: chcemy wyodrębnić wszystkie linki istniejące na danej stronie. W tym celu wywołamy dwie funkcje z pakietu httr: html_nodes() z argumentem css ustawionym na "a" (a to tag HTML dla linków) oraz html_attr(), która wyodrębnia wskazany atrybut z węzła — w naszym przypadku będzie to "href", czyli adres linku.

Pakiety purrr i rvest są już wczytane. Wektor urls nadal jest dostępny w twoim środowisku.

To ćwiczenie jest częścią kursu

Funkcyjne programowanie średnio zaawansowane z purrr

Zobacz kurs

Instrukcje do ćwiczenia

  • Wypełnij wstępnie funkcję html_nodes(), ustawiając argument css na "a".

  • Utwórz funkcję href() jako wstępnie wypełnioną wersję html_attr().

  • Skomponuj nowe połączenie funkcji href(), get_a() i read_html().

  • Zastosuj tę nową funkcję na wektorze urls za pomocą map.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Create a partial version of html_nodes(), with the css param set to "a"
get_a <- ___(html_nodes, ___)

# Create href(), a partial version of html_attr()
href <- ___(___, name = "href")

# Combine href(), get_a(), and read_html()
get_links <- ___(___, ___, ___)

# Map get_links() to the urls list
res <- ___(urls, ___) %>%
  set_names(urls)

# See the result
res
Edytuj i uruchom kod