CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Préremplissez html_nodes() avec l’argument css fixé à "a".

  • Créez la fonction href(), qui sera une version préremplie de html_attr().

  • Composez une nouvelle combinaison de href(), get_a() et read_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
Modifier et exécuter le code