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
Instrukcje do ćwiczenia
Wypełnij wstępnie funkcję
html_nodes(), ustawiając argumentcssna"a".Utwórz funkcję
href()jako wstępnie wypełnioną wersjęhtml_attr().Skomponuj nowe połączenie funkcji
href(),get_a()iread_html().Zastosuj tę nową funkcję na wektorze
urlsza 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