Un autre extracteur
Dans l’exercice précédent, nous avons construit une fonction capable d’extraire le contenu texte des en-têtes H2.
Essayons autre chose ici : nous voulons extraire tous les liens présents sur une page donnée. Pour cela, nous devrons appeler deux fonctions de httr : html_nodes(), avec l’argument css fixé à "a" (a est la balise HTML des liens), et html_attr(), qui extrait un attribut donné d’un nœud — dans notre cas, l’attribut sera "href", c’est‑à‑dire l’adresse du lien.
purrr et rvest ont été chargés pour vous. Vous trouverez toujours le vecteur urls dans votre espace de travail.
Cet exercice fait partie du cours
<cours>Programmation fonctionnelle intermédiaire avec purrr</cours>Instructions de l’exercice
Préremplissez
html_nodes()avec l’argumentcssfixé à"a".Créez la fonction
href(), qui sera une version préremplie dehtml_attr().Composez une nouvelle combinaison de
href(),get_a()etread_html().Appliquez cette nouvelle fonction au vecteur
urls.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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